【问题标题】:Problem with videoView on AndroidAndroid上的videoView问题
【发布时间】:2011-09-01 21:33:50
【问题描述】:

我在 Android 上使用 2 个 VideoViews 时遇到问题。

我知道我不能同时使用 2 个 VideoView。

这是我的工作流程。

  1. 创建 2 个视频视图。
  2. 隐藏其中 1 个。
  3. 预取第一个 videoView。
  4. 播放第一个 VideoView。
    • 在另一个线程中,我预取了第二个视频
  5. 有时我会切换 videoViews。
  6. 第二个视频运行良好。
  7. 当第二个视频完成后,我切换到第一个视频。
  8. 视频从头开始播放,而不是第一个视频的最后一个状态。

我尝试在切换之前获取当前时间并将其保存,然后当第一个视频视图返回时,我使用 seekTo(LastCurrenttime),但缓冲区已消失(在最后一个 currentTime 之前)。

你知道缓冲区是静态的还是视频视图只使用一个缓冲区?

为什么videoView没有保存最后一个videoView的状态? ((currentTime 还是缓冲区状态?

有没有办法在不使用 seekTo 功能的情况下做到这一点?

【问题讨论】:

  • 我想你是对的,而且 VideoViews 只有 1 个缓冲区。但我自己从未尝试过这样的事情。
  • 你最终成功了吗?

标签: android android-sdk-2.3


【解决方案1】:

我的理论是,因为第一个 VideoView 被隐藏,这意味着在视图上调用了 suspend() 和 resume()。如果在source code for VideoView 中搜索“suspend”和“resume”,可以看到 MediaPlayer 实例被释放并重新分配。

我的建议是您创建一个修改此行为的自定义 VideoView。

我展示了如何在my answer to 7990784 中自定义 VideoView。

以此为起点,您可以重写 resume() 函数以避免调用 openVideo()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多