我正在尝试使用像rtsp这样的URL格式播放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.Below是我试过的音频流来自RTSP的音频流的代码

mediaPlayer.setDataSource(RTSPurl);

mediaPlayer.prepare();

mediaPlayer.start();

请建议一些可行的解决方案,我会很高兴你!

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

public class Radio extends AsyncTask {

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;

}

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐