4

我正在尝试编写一个非常简单的应用程序,它只是尝试播放由 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 字符串的格式如下 rtsp://192.168.1.136:8554/mercykilling.mkv

我的问题是我不断收到如下错误

V/MediaPlayer(16501): 收到消息 msg=100, ext 1=1, ext2=-18

任何人都可以就这个话题给出任何指示吗?

4

3 回答 3

2

以前的常见问题

以前的背景

一般评论 - RTSP / RTP 支持包含大量底层编码和规范,用于在数据包内打包媒体轨道,我不确定标准的 Android libStageFright 库是否真的支持它的所有排列。

我查看了 API / 媒体 / 视频下 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 获取一个提要并尝试播放格式 = 1 流的 URL,这将是 RTSP 协议。这里的例子

于 2012-04-17T16:58:04.713 回答
0

mkv 仅支持 4.0+ 版本 看看

始终牢记的一件事是,要支持 rtsp 流,您必须启动 rtsp 服务器。否则,您将无法启动该文件。

于 2012-04-13T11:21:36.650 回答
0

可以使用库@http: //net7mma.codeplex.com/(我是作者)

它可以提供一种简单的方法来允许在 Android 中播放Rtsp或播放Rtp媒体。

于 2016-06-24T22:04:10.470 回答