我正在尝试从 RTSP 服务器流式传输视频。我想在我的应用程序中运行视频。我尝试了三种不同的方法,但似乎只有一种有效:
- 使用 VideoView(不起作用)。
- 使用本机播放器(作品)。
- 使用 MediaPlayer(不起作用)。
我想在 MediaPlayer 上显示视频,但无法做到。
这是代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* 1. Using VideoView, error: "Cannot play video"
VideoView vidView = (VideoView) findViewById(R.id.myVideo);
String vidAdress = "rtsp://10.42.0.91:5554/camera";
Uri vidUri = Uri.parse(vidAdress);
vidView.setVideoURI(vidUri);
vidView.start();
*/
//Using native player (implicit intent), works.
String mediaURL = "rtsp://10.42.0.91:5554/camera";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mediaURL));
startActivity(intent);
/* Using MediaPlayer (doesn't work). Error: "Cannot create MediaPlayer"
and setDataSource.
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try
{
mediaPlayer.setDataSource("rtsp://10.42.0.91:5554/camera");
mediaPlayer.prepare();
mediaPlayer.start();
}
catch (IOException ex)
{
ex.printStackTrace();
}
*/
http:10.42.0.91:8080/playlist.m3u 看起来像这样:
#EXTM3U
#PLAYLIST:RTSP 摄像机服务器 #EXTINF:-1,活动摄像机 rtsp://10.42.0.91:5554/camera #EXTINF:319,2016 年 3 月 3 日下午 3:08:35 MB rtsp://10.42.0.91: 5554/record160303_1500 #EXTINF:1047,3/3/16 PM 2:15:106.4 MB rtsp://10.42.0.91:5554/record160303_1400 #EXTINF:1364,所有记录 141.4 MB rtsp://10.42.0.91:5554/记录#EXTINF:-1,后置摄像头rtsp://10.42.0.91:5554/back #EXTINF:-1,前置摄像头rtsp://10.42.0.91:5554/front