android - Http Live Stream 流畅运行

标签 android multithreading video

我正在运行在线流,实现示例代码:

VideoView videoView = (VideoView) findViewById(R.id.videoView);
    String httpLiveUrl = "......";

    videoView.setVideoURI(Uri.parse(httpLiveUrl));
    videoView.setMediaController(new MediaController(this));

    videoView.requestFocus();
    videoView.start();

Activity 一加载,就会出现黑屏,片刻后视频开始运行。正如我在文档中所读到的,它需要在不同于 UI 线程的地方运行。但是,当我添加 run() 时,视频根本没有启动。这里的方法是什么?

最佳答案

我不认为这是一个需要线程的代码问题。

the activity is loaded, a black screen appears and after a while the video is run. 

此观察表明视频播放,但只有在正确缓冲足够的内容后才能开始播放。

您可以做的是通过在当前布局中显示/隐藏您选择的图像并调用 VideoView#setOnPreparedListener 来向应用程序用户指示正在缓冲视频。

这是一个例子:

VideoView videoView = (VideoView) findViewById(R.id.videoView);
String httpLiveUrl = "......";

videoView.setVideoURI(Uri.parse(httpLiveUrl));
videoView.setMediaController(new MediaController(this));
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        // media file is loaded and ready to go.
        hideBufferingUi();
    }
});

videoView.requestFocus();
showBufferingUi();
videoView.start();

剩下要实现的就是

  1. 选择一张图片
  2. 将其添加到您的布局中
  3. 添加showBufferingUihideBufferingUi 方法

你好!

关于android - Http Live Stream 流畅运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37883899/

相关文章:

java - 停止 ServerSocket Accept() 循环线程

python 在Windows中检索和修改mp4文件属性

java - Android中strings.xml字符串中的粗体字

java - Android Facebook SDK,请求发布权限 "manage_pages"未更新 session 权限列表

Android:从服务获取结果

c# - 为什么选择 System.Threading 而不是 BackgroundWorker?

android - 如何在 EditText 上隐藏 Android 软键盘

java - java 8中是否存在并发时发生的liveness failure

javascript - 如何使用自定义帖子类型创建 WordPress 视频库

react-native - 如何在 React Native 中获取视频的尺寸?