Android 4.2上的RTP Stream媒体播放器

时间:2015-08-04 03:08:59

标签: android android-videoview rtsp

我正在尝试使用VideoView编写一个简单的应用在Android设备上播放RTSP流。我发现MediaPlayer类可以直接播放RTSP。

以下是我在应用中使用的代码片段:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rtpplayback);

        final VideoView vidView = (VideoView)findViewById(R.id.video_view);
        MediaController vidControl = new MediaController(this);
        vidControl.setAnchorView(vidView);
        vidView.setMediaController(vidControl);
        vidView.setVideoPath("rtsp://media.smart-streaming.com/mytest/mp4:sample_phone_300k.mp4");
        vidView.start();
    }

我从here获得了rtsp链接,所以我假设没有问题。

然而,当我尝试在设备上运行此应用时,我收到“无法播放此视频”错误。

从adb日志中,我看到:

E/MediaPlayer-JNI﹕ QCMediaPlayer mediaplayer NOT present
D/MediaPlayer﹕ Couldn't open file on client side, trying server side
E/MediaPlayer: error (1, -2147483648)
E/MediaPlayer: Error (1,-2147483648)
D/VideoView: Error: 1,-2147483648

我已经添加了uses-permission以在我的Android Manifest文件中包含INTERNET权限。

这可能是URI本身的问题吗?我试过多个URI但结果相同。我在stackoverflow上找到了一些链接,提供了将Youtube链接转换为RTSP链接的方法,但这些链接现在似乎已被弃用(它不起作用)。

任何想法/建议?在相关说明中,如果您知道任何已知的RTSP链接,请建议。

1 个答案:

答案 0 :(得分:1)

可能的解决方案是使用原生播放器

String videoURL = "rtsp://media.smart-streaming.com/mytest/mp4:sample_phone_300k.mp4"; 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(videoURL));
startActivity(intent);