我有一个简单的Android应用程序,其中包含用于加载基于Web_Based的应用程序的WebView和用于播放视频(使用HTTP协议)和多播流(使用UDP协议的直播电视)的VideoView。
基于Web的应用程序,视频服务器和直播电视服务器位于本地服务器(Ubuntu 12.04)中,因此我的Android应用程序通过以太网电缆(不是通过Internet)本地连接到它们。
我的Android设备也是具有Android版本6的STB。
Android应用程序被开发为仅通过单击一个按钮就可以播放视频或实况电视,但是问题是,有时,当我打开机顶盒(并立即启动Android应用程序)时,延迟约30秒才能启动直播电视。视频根本没有发生此问题。
直播电视流的示例为udp://239.0.0.1:1234
视频网址示例为http://192.168.200.235/test.mp4
//这是我播放UDP流的主要功能的优点
PlayerActivity.videoView.stopPlayback();
final Uri video = Uri.parse("udp://"+url.replaceAll("\\s+",""));
PlayerActivity.getInstance().runOnUiThread(new Runnable() {
@Override
public void run() {
PlayerActivity.videoView.setVisibility(View.GONE);
PlayerActivity.videoView.setVisibility(View.VISIBLE);
PlayerActivity.videoView.setVideoURI(video);
PlayerActivity.videoView.start();
PlayerActivity.videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.e("ERROR LOG FOR UDP STREAM",":( I don't get any error here !");
return false;
}
});
}
});
答案 0 :(得分:0)
尽管Android可以播放UDP流,但并不是为此而构建的。因此,最好将HSL或RTMP协议用于实时流播放以及视频文件。您可以使用HLS。