我正在尝试使用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链接,请建议。
答案 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);