【问题标题】:AIR/Android - play video from mounted OBB/expansion fileAIR/Android - 从挂载的 OBB/扩展文件播放视频
【发布时间】:2015-08-27 10:43:26
【问题描述】:

我有大约 125MB 的视频文件需要从扩展文件 (OBB) 播放。 OBB 文件本身就位并使用3rd party native extension 成功“挂载”,因此我可以使用传统方法访问文件,例如 File 类、Loader 类等。

我使用 NetStream 和 NetConnection 类来播放视频文件,但问题是要播放流,视频文件需要与尝试播放它的 SWF 位于同一文件夹(或子文件夹) )。这也在 Adob​​e 文档中:

播放本地文件

在 Flash Player 和应用程序安全之外的 AIR 内容中 沙盒,可以播放存储在同一个本地的视频文件 目录作为 SWF 文件或在子目录中;但是,你不能 导航到更高级别的目录。

不过,出于好奇,我还是尝试播放该流,但它会引发 StreamNotFound 错误(应该如此,因为视频文件与 SWF 不在同一个文件夹/子文件夹中)。我的直觉是,这是一些安全沙盒的东西,有办法绕过它,但我找不到。

感谢任何帮助。

【问题讨论】:

  • 如果是安全沙盒问题,它会告诉您。我的猜测是它无法发现该文件。我不知道您所说的“已安装”是什么意思,但 obb 文件只是一个 zip 文件,因此它应该简单地在应用程序安全沙箱树中解压缩,以便可以访问它的文件。如果你做任何其他事情,你只是在找麻烦。
  • 据我所知,OBB 文件是我想要的。所以我使用 Android SDK 中的“jobb”命令行工具来创建 OBB 文件。我使用的 ANE 使我能够在不打开包装的情况下访问 OBB,从而为所有意图和目的“安装”它。如果我将其解压缩到任何可写文件夹中,NetStream 仍然无法播放该文件,因为视频文件仍然不会与 SWF 位于同一文件夹中。不过,我会探索一下。谢谢。
  • 这种方法的问题在于,OBB 的位置可能会因设备而异,并且无法保证用户无法通过简单地进行某种清理来删除它。这就是为什么至少建议将该文件移动到一个安全的位置开始,甚至更好地将其解压缩到正确的位置。就我个人而言,我在应用程序根目录中查找我的文件,如果它们不存在,我会在我的 OBB 中找到它们,然后我将它们复制到我的应用程序根目录中。用户永远不必等待任何东西,过了一会儿我所有的文件都在根目录下。
  • 谢谢,我知道它是如何工作的,但是所有的解包/复制不会增加应用程序使用的空间吗?我的应用程序大约 300MB,因此任何解包都需要相同数量的空间。所以安装我需要大约 600MB。另外,Google 明确不建议删除和删除 OBB 文件:developer.android.com/google/play/expansion-files.html#Rules Google 也明确建议:'但是,如果可能,最好使用允许您直接从文件中读取的扩展文件格式,而不是要求您解压数据'
  • @Nedudgi 你能告诉我你是如何将扩展添加到 adobe flash 的吗?我是 adobe 新手,想测试一下,谢谢。

标签: actionscript-3 flash video air apk-expansion-files


【解决方案1】:

最终我能够使用内置的 as3 VideoPlayer 类从已安装的 obb 播放视频文件,它似乎可以从任何文件夹播放视频。

【讨论】:

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