VideoView 开始播放多播流时延迟(有时)

VideoView delays when starting to play a Multicast stream (just sometimes)

我有一个简单的 Android 应用程序,它包含一个 WebView 来加载我的 Web_Based 应用程序和一个 VideoView 来播放视频(使用 HTTP 协议)和多播流(直播电视使用UDP 协议)。

Web_Based 应用程序、视频服务器和直播电视服务器位于本地服务器 (Ubuntu 12.04) 中,因此我的 Android 应用程序通过以太网电缆在本地连接到它们 (不是通过互联网)。

我的 Android 设备也是 Android 版本 6 的机顶盒。

Android 应用程序被开发为在启动时播放视频或直播电视,只需单击 button.But 问题是有时,当我打开机顶盒时(并立即启动 Android 应用程序),启动 Live TV 会有大约 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;
            }
        });
    }
});

虽然Android可以播放UDP流,但它不是为此而建的。因此,最好使用 HSL 或 RTMP 协议进行直播流播放,视频文件也可以使用 HLS。