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

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


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


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


Android 应用程序被开发为在启动时只需单击一个按钮即可播放视频或直播电视。但问题是,有时,当我打开机顶盒(并立即启动 Android 应用程序)时,会出现延迟约 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;

            }

        });

    }

});


qq_花开花谢_0
浏览 156回答 1
1回答

开满天机

虽然 Android 可以播放 UDP 流,但它不是为此而构建的。因此,最好使用 HSL 或 RTMP 协议进行直播流播放,视频文件也可以使用 HLS。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java