gpt4 book ai didi

Android Video View 在某些设备上无法播放 MP4 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:25:11 28 4
gpt4 key购买 nike

在我的应用程序中,我需要播放来自 SD 卡的视频。现在它在 Galaxy S、Galaxy Tab2 上运行良好,但在某些中文选项卡(如“Giada”)上它根本无法运行。

我有 4 个不同的 Activity 来播放视频。第一个 Activity 播放一个菜单视频,其中包含指向其他 Activity 的导航链接。我面临的问题。

  1. 第一个视频可以正常播放,但循环失败并且应用已关闭。
  2. 如果我导航到其他 Activity 以播放另一个视频,它会显示“无法播放视频”并关闭有时它会播放相同的视频但不完整并关闭其间的应用。

视频扩展名:MP4分辨率:1024x600从 : SDCard 播放。

目标选项卡规范。

分辨率:1024x600安卓:4.1

尝试使用 Video View 和 SurfaceView。

帮帮我,我会后悔的。

最佳答案

这个问题的答案永远不会在所有设备或所有视频中保持一致。

给定的视频文件能否在给定的播放器中播放取决于三件事:

  • 视频容器格式(文件类型)。
  • 视频(可能还有音频)流编码的编解码器
  • 您的播放器对容器格式和编解码器组合的支持

编解码器和播放器/设备对它的支持几乎可以肯定是您看到的不一致结果的原因。 (编解码器,如果您不知道的话,基本上是一个可重复的数学公式,它告诉您的系统如何将打包到文件中的位和字节转换为移动图片(就此而言,然后再返回))

视频文件中有各种各样的视频编解码器。由于视频分发的历史,对这些编解码器的支持非常不一致。许多设备不支持使用某些编解码器编码的流。造成这种情况的原因有很多,但最常见的原因是晦涩难懂或许可成本。

例如,直到几年前,几乎所有内容都使用 On2 VP6/VP7/VP8 编解码器编码在 .FLV 容器中。这在今天令人头疼,因为虽然 On2 拥有这些编解码器,但他们对许可证保持严格控制。直到 .FLV 开始失去相关性之前,这种情况并没有放松,因此没有很多(合法的)软件可以处理 On2 编码的内容。

所有这一切意味着没有 Elixir 。所有视频永远不会在所有设备上运行,至少在没有安装和使用自己的编解码器来解码流的视频播放器的帮助下。

不用说,这不包括由出厂安装的 Android 库提供给您和您的最终用户的库。

那么,你是做什么的?好吧,除了制作带有自己的编解码器的视频播放器之外,您可以通过两步方法最有效地解决问题:

  1. 针对您希望您的应用程序运行的特定设备
  2. 对您的内容进行编码,以使用适用于您想要定位的所有设备的视频编解码器。如果您发现没有适用于您计划支持的所有设备的编解码器,您可能需要制作两份视频副本。

如今,MP4 容器和使用 H.264 (AVC) 编解码器编码的视频流提供了最广泛的支持。正如我所说,没有 Elixir ,并且 H.264 支持无论如何都不是普遍的,但是由于它在现代中的流行和广泛支持,这种格式将比您可以做出的任何其他单一选择更适合潜在用户播放桌面和移动环境。

一些您可能会觉得有用的工具:

  • MediaInfo将让您窥视 MPEG 风格的视频容器内部,以查看正在使用的编解码器。这将有助于确定哪些设备在使用哪些编解码器时出现问题。
  • FFmpeg是一个编码应用程序,可以将您的内容转换为 MP4/H.264
  • Android Supported media formats支持的媒体音频/视频格式列表。

祝你好运!

关于Android Video View 在某些设备上无法播放 MP4 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19151685/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com