【问题标题】:Sharing VideoView between two MediaPlayers not working在两个 MediaPlayer 之间共享 VideoView 不起作用
【发布时间】:2011-02-25 16:23:07
【问题描述】:

我有一个主 MediaPlayer,它可以很好地播放 RTSP 流,并且我使用了 AsyncTask 来缓冲另一个流的内容。它实现了这一点。当我尝试切换到第二个流时,我可以听到流切换并且它没有滞后,但我只听到声音。 SurfaceHolder 持有一个 VideoView,它已经准备好了,我将它注册为 Display 媒体播放器。 当我切换流时,我停止了旧的 MediaPlayer,但表面没有被破坏,这很好,但它不显示我的第二个视频。有什么想法吗?

【问题讨论】:

    标签: android media-player rtsp android-videoview surfaceholder


    【解决方案1】:

    您能否提供您的 VideoView 实例化代码和用于切换 MediaPlayers 的代码?

    无论如何,我怀疑这是否能正常工作,因为 VideoView 实例化了它自己的 MediaPlayer 并使用它来播放媒体。 (见VideoView.java

    您可能需要自行切换 VideoView,或使用您自己的 SurfaceView 子类构建 VideoView 的替代品。

    【讨论】:

    • VideoView 实例化是 Android 文档中的标准实例,我将它附加到 SurfaceHolder,然后在我的 MediaPlayer 上调用 setDisplay(mHolder)。我了解您对 VideoView 及其自己的媒体播放器的看法,但是我如何利用已经准备好()并准备好开始()的媒体播放器?我是否应该实例化 2 个 VideoView 并使旧的 VideoView 不可见,而与第二个 MediaPlayer 关联的新的 VideoView 可见?感谢您的回答!
    • 你能告诉我你正在谈论的 VideoView 实例化的链接吗?如果您使用的是 VideoView,那么您的代码不应提及 MediaPlayer(在为您提供 MediaPlayer 的某些 VideoView 回调中除外)。如何开发自己的自定义 SurfaceView 的一个很好的起点是 VideoView.java,更改它(或继承它)以在一个视图中切换两个不同的 MediaPlayer。
    • 非常感谢您的回答。我现在意识到,对于我所需要的,我应该对 VideoView 进行自定义实现。另一个答案也指出了这一点。
    猜你喜欢
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2015-10-26
    • 2012-01-06
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多