我有一个简单的Android应用程序,它包含一个WebView来加载我的Web_Based应用程序,一个VideoView用来播放视频(使用HTTP协议)和多播流(使用UDP协议的直播电视)。
Web_Based应用程序、视频服务器和Live服务器位于本地服务器(Ubuntu12.04)中,因此我的安卓应用程序是通过以太网电缆(而不是通过互联网)本地连接到它们的。
另外,我的Android设备是一个带有Android版本6的机顶盒。
Android应用程序是为了播放视频或直播电视而开发的,只要点击一个button.But就可以启动。问题是,有时候,当我打开机顶盒(并立即启动安卓应用程序)时,启动Live的时间会延迟大约30秒。这个问题根本没有发生在视频中。
直播电视流的示例是udp://239.0.0.1:1234
视频url的示例是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;
}
});
}
});
发布于 2019-05-28 10:48:13
虽然Android可以播放UDP流,但它不是为此而构建的。因此,最好使用HSL或RTMP协议进行实时流播放,对于视频文件也可以使用HLS。
https://stackoverflow.com/questions/56162787
复制相似问题