播放RTSP音频流

时间:2014-12-05 09:52:35

标签: android streaming audio-player

我正在尝试使用URL格式播放RTSP流,例如rtsp://xxxxxxxx.sdp 很多人都试图在Android中播放RTSP视频流,有些尝试使用意图,有些人使用视频视图,如下面的代码

video1=(VideoView)findViewById(R.id.videoview);
video1.setVideoURI(Uri.parse("rtsp://208.77.20.52:1935/dmm1/ten"));
video1.requestFocus();
video1.start();

是否可以使用MediaPlayer对象在Android中播放音频流?如果是,请提供一些解决方案,我有一个音频流在VLC上正常工作,但在Android中不起作用。

以下是我在Android中用于RTSP音频流的代码

mediaPlayer.setDataSource(RTSPurl);
mediaPlayer.prepare();
mediaPlayer.start();

这是我正在尝试的完整代码:

 public class Radio extends AsyncTask<String, Void, String> {

String rtspUrl = "rtsp://192.168.9.59:8080/test.sdp";
MediaPlayer player;
Context c;

public Radio(Context c) {
    this.c = c;
    Log.i("TAG","Initializing...");
}

@Override
protected void onPostExecute(String result) {
    // TODO Auto-generated method stub
    super.onPostExecute(result);
    player.start();
    player.setOnPreparedListener(new OnPreparedListener() {

        public void onPrepared(MediaPlayer mp) {
            player.start();
            Toast.makeText(c, "starting..", Toast.LENGTH_LONG).show();
        }
    });


}

private void setDataSource(String path2) {
    // TODO Auto-generated method stub
    player = new MediaPlayer();
    try {

        Uri a = Uri.parse(rtspUrl);
        player.setAudioStreamType(AudioManager.STREAM_MUSIC);
        player.setDataSource(c, a);
        player.prepareAsync();

    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

@Override
protected String doInBackground(String... params) {
    // TODO Auto-generated method stub
    setDataSource(rtspUrl);

    Log.e("inside doinbackground....", rtspUrl);
    return null;
}

}

0 个答案:

没有答案