Захват аудио из онлайн потока

Ответить
kolhoz
Сообщения: 1
Зарегистрирован: 15 мар 2015, 18:22

Захват аудио из онлайн потока

Сообщение kolhoz » 15 мар 2015, 18:45

Есть ссылки онлайн радио таких типов:
http://stream6.radiostyle.ru:8006/priboyfm
http://music.nextweb.ru:9500/zha
http://78.110.148.237:8000/;stream.nsv

Как сделать захват аудио из этих ссылок? Есть код, который воспроизводит эти ссылки. привожу его ниже.. Может кто-то поможет доработать его, и добавить возможность записи аудио из этих ссылок

Код: Выделить всё

import java.io.IOException;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.LinearLayout;

public class RadioPriboy extends AbstractAsyncActivity implements OnPreparedListener,
    OnCompletionListener {

  final String LOG_TAG = "myLogs";
  final String DATA_STREAM = "http://stream6.radiostyle.ru:8006/priboyfm";
  
  MediaPlayer mediaPlayer;
  AudioManager am;
  ImageButton butPause;
  ImageButton butResume;  
  ImageButton butStart;
  ImageButton butStop;  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.radio);
    am = (AudioManager) getSystemService(AUDIO_SERVICE);
    butPause=(ImageButton) findViewById(R.id.buttonPause);
    butResume=(ImageButton) findViewById(R.id.buttonResume);
    butStart=(ImageButton) findViewById(R.id.buttonStart);
    butStop=(ImageButton) findViewById(R.id.buttonStop);
    
    LinearLayout layout = (LinearLayout) findViewById(R.id.Amob);
    AdView adView = new AdView(this,  new AdSize(320, 50), ADMOB_PUBLISHER_ID);
    layout.addView(adView);
    AdRequest request = new AdRequest();
    request.setTesting(true);
    adView.loadAd(request);
  }

  public void onClickStart(View view) {
	    releaseMP();
	    
	    try {
	      switch (view.getId()) {
	      case R.id.buttonHTTP:
	        Log.d(LOG_TAG, "start HTTP");
	        mediaPlayer = new MediaPlayer();
	        mediaPlayer.setDataSource(DATA_HTTP);
	        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
	        Log.d(LOG_TAG, "prepareAsync");
	        mediaPlayer.setOnPreparedListener(this);
	        mediaPlayer.prepareAsync();
	        break;
	      case R.id.buttonStart:
	        Log.d(LOG_TAG, "start Stream");
	        mediaPlayer = new MediaPlayer();
	        mediaPlayer.setDataSource(DATA_STREAM);
	        butPause.setImageResource(R.drawable.pause64);
	        butResume.setImageResource(R.drawable.resume64);
	        butStop.setImageResource(R.drawable.stop64);
	        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
	        Log.d(LOG_TAG, "prepareAsync");
	        mediaPlayer.setOnPreparedListener(this);
	        mediaPlayer.prepareAsync();
	        showLoadingProgressDialog();
	        break;
	      }

	    } catch (IOException e) {
	      e.printStackTrace();
	    }
	    if (mediaPlayer == null)
	      return;

	    mediaPlayer.setOnCompletionListener(this);
	  }

	  private void releaseMP() {
	    if (mediaPlayer != null) {
	      try {
	        mediaPlayer.release();
	        mediaPlayer = null;
	      } catch (Exception e) {
	        e.printStackTrace();
	      }
	    }
	  }

	  public void onClick(View view) {
	    if (mediaPlayer == null)
	      return;
	    switch (view.getId()) {
	    case R.id.buttonPause:
	      if (mediaPlayer.isPlaying())
	        mediaPlayer.pause();
	      break;
	    case R.id.buttonResume:
	      if (!mediaPlayer.isPlaying())
	        mediaPlayer.start();
	      break;
	    case R.id.buttonStop:
	      mediaPlayer.stop();
	      butResume.setImageResource(R.drawable.resume64_colorless);
	      butStop.setImageResource(R.drawable.stop64_colorless);
	      butPause.setImageResource(R.drawable.pause64_colorless);
	      break;
	    }
	  }
	  
	  @Override
	  public void onPrepared(MediaPlayer mp) {
	    Log.d(LOG_TAG, "onPrepared");
	    dismissProgressDialog();
	    mp.start();
	  }

	  @Override
	  public void onCompletion(MediaPlayer mp) {
	    Log.d(LOG_TAG, "onCompletion");
	  }

	  @Override
	  protected void onDestroy() {
	    super.onDestroy();
	    releaseMP();
	  }
	}

Ответить