我正在尝试使用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;
}
}