【问题标题】:Android MediaPlayer gapless videoAndroid MediaPlayer 无缝视频
【发布时间】:2014-06-17 05:46:27
【问题描述】:

我正在尝试使用本机 MediaPlayer 播放一系列视频文件,并且它们之间不能有任何黑色闪烁。

我知道这个问题之前已经多次提出,但问题大多是几年前的问题。典型的响应是在多个媒体播放器之间交换,这似乎不起作用。

我认为片段的广泛使用可能引入了一种新的解决方案,实际上我可以通过构建一个同时显示多个 SurfaceView 的片段堆栈来获得无缝过渡,并从堆栈顶部向下播放视频,但当然这是不可扩展的,因为整个播放列表需要在播放开始之前存储在内存中。

只是想知道近年来是否有人做到了这一点?或者,除了使用 SurfaceView 或本机 MediaPlayer,还有其他可行的替代方案吗?
我正在尝试使用 TextureView,但目前无法使其正常工作。

【问题讨论】:

  • 我使用 SurfaceView 解决闪烁问题
  • 你能提供更多细节吗?
  • 我使用 VideoView 来显示视频内容,但遇到了闪烁问题。我已经使用 SurfaceView 来修复它。你需要这样的例子吗?
  • 是的,如果你能把答案发给我,如果太长的话,那就太棒了(电子邮件是 m.harmer@mandoemedia.com)。
  • 它是次要的,很少修复。我很惊讶,它解决了我的问题:) 我会在几分钟内发布答案

标签: android video android-mediaplayer


【解决方案1】:

我使用下面的代码来解决闪烁问题:

<CalculationLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="@android:color/black"
              android:orientation="vertical">

    <LinearLayout
            android:id="@+id/activity_display_journal_fragment_content"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    <SurfaceView
            android:layout_width="0px"
            android:layout_height="0px" />

</LinearLayout>

ID 为 activity_display_journal_fragment_content 的 LinearLayout 包含片段,其中包含 VideoView。

【讨论】:

  • 嗯,我已经看到并尝试过这个建议,但它没有奏效。
  • 你如何在视频之间切换?您是否为每个新视频使用单独的片段?
  • 在这种情况下,我不知道还有什么建议。 SurfaceView 为我创造了魔法并解决了我的问题。
  • 我在 viewpager 的页面上有 2-3 个视频。我用了 1 个片段
  • 我明白了。我没有使用浏览器,只是连续播放播放列表中的视频。无论如何,谢谢,我会记住这个解决方案。
猜你喜欢
  • 2013-03-09
  • 2012-12-06
  • 2014-01-12
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
相关资源
最近更新 更多