我正在尝试编写一个非常简单的应用程序,它只是尝试播放由 RTSP 服务器流式传输的视频。 我在某处读到 VideoView 组件能够处理 RTSP 流。 所以我按以下方式编写了代码。
vv = (VideoView) findViewById(R.id.videoView1);
mc = new MediaController(getApplicationContext());
vv.setVideoURI(Uri.parse(url));
vv.setMediaController(mc);
vv.requestFocus();
vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
vv.start();
}
});
URL String 格式如下 rtsp://192.168.1.136:8554/mercykilling.mkv
我的问题是我一直收到如下错误
V/MediaPlayer(16501): 收到消息 msg=100, ext 1=1, ext2=-18
任何人都可以就此主题提供任何指示吗?
最佳答案
上一个 FAQ
上一个 background
一般评论 - RTSP/RTP 支持包含一组非常大的底层编码和规范,用于在数据包内打包媒体轨道,我不确定标准 Android libStageFright 库是否在其所有排列中实际支持它。
我查看了 API/media/video 下 sdk 中的 ICS 示例...
ApiDemos\src\com\example\android\apis\media\MediaPlayerDemo_Video.java
查看您的 SDK 以及上述示例中的注释...
case STREAM_VIDEO:
/*
* TODO: Set path variable to progressive streamable mp4 or
* 3gpp format URL. Http protocol should be used.
* Mediaplayer can only play "progressive streamable
* contents" which basically means: 1. the movie atom has to
* precede all the media data atoms. 2. The clip has to be
* reasonably interleaved.
*
*/
这些评论不支持android 4.0 mediaPlayer 将播放RTSP 流的观点。
如果您想测试一个通用的 RTSP 流,我建议您从 Youtube 获取一个提要并尝试播放 format=1 流的 URL,这将是 RTSP 协议(protocol)。 示例 here
关于android - Android 应用程序中 VideoView 中的 RTSP 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10138603/