【问题标题】:StageWebViewBridge loading included assetsStageWebViewBridge 加载包含的资产
【发布时间】:2011-09-16 18:51:49
【问题描述】:

我的首要任务是在使用 StageWebView 类的 iOS 版 Flash CS5.5 AIR 编译的 ipad 应用上播放全屏(标准尺寸)1024x768 H264 视频。这工作得很好。尽管没有与 StageWebView 进行通信的官方方式,但一旦播放完毕,我就无法“删除”视频。进入启用 AS JS 通信的 StageWebViewBridge。

我正在尝试解决 iPad(1 或 2)上 Video 类的整体性能不佳的问题。在加载 html5 对象的 StageWebView 中播放视频效果非常好(阅读:GPU 硬件解码的 h264)。

在 StageWebView 中播放完视频后,我确实需要关闭视频。我正在打包一个用 H264 编码的 .mov 文件,该文件在 webkit 浏览器中播放效果很好。如果我只是在 StageWebView 中加载一个带有指向任何视频文件的标签的网页,它会播放得非常好。

一旦我介绍了 StageWebViewBridge,它就会发生变化。他们希望将文件放在 /html 文件夹中。我正在发送各种路径供玩家 src 播放,并且没有加载任何视频。该视频被命名为“a.mov”。我试过 player.src = 'a.mov', or player.src = 'html/a.mov', or player.src = './html/a.mov' 甚至使用 File 类来获取文件。 applicationDirectory 并将文件解析为 .nativePath。无论我在StageWebView页面中从AS向JS发送什么,都无法加载视频。

有人知道如何引用嵌入文件吗?我想将要从 AS 加载的文件发送到 JS,并让 JS 重置 html5 元素的 .src 属性。

即使我所做的 File.applicationDirectory 引用也表明文件“存在”,但我永远无法在页面上设置元素的 .src 属性。好像没看懂。

任何提示将不胜感激。

【问题讨论】:

    标签: ios flash actionscript-3 air stagewebviewbridge


    【解决方案1】:

    我是stagewebview桥的制造者...

    你评论的所有事情,都可以用我的课来完成....在html中引用文件的方式是:

    <img src="appfile:/yourfile.jpg">
    

    但我想你的问题是你会动态地改变 src 而你不知道如何获取文件的真实路径。

    就在今天我更新了我的库...(一些错误,还有安卓版本!!!)

    我需要有时间上传示例,但作为起点,请查看 wiki 和 javascript 中的此函数:

    StageWebViewBridge.getFilePath( path )
    

    假设您在 www 目录中有一个名为 video.mp4 的文件(是的,现在是根目录),您需要使用 jQuery 分配视频的 src...

    只需在 JS 中执行此操作:

    $('#video').attr('src', StageWebViewBridge.getFilePath('jsfile:/video.mp4') );
    

    在没有做任何事情之前,请重新阅读已更改的文档...

    如果有帮助请告诉我....

    【讨论】:

    • 你还在stagewebview桥上工作吗?或者它是一个不再活跃的旧项目?我在 flash builder 4.6 中工作并尝试包含一个资产文件夹并在其中包含本地 html 文件,然后使用 stagewebview 桥加载本地 html 文件。我有一个基本的实现设置,可以加载实时 url,但我尝试使用 wiki 中的加载本地方法进行 SWVBridge 不起作用,我只是得到网页不可用-我使用 air 13 sdk,并尝试构建一个兼容的 android 和 ios这个特定项目中的应用程序。感谢您在这方面给我的任何帮助。
    • stageWebViewBridge 是否以某种方式暴露了本机 drawViewPortToBitmapData?
    【解决方案2】:

    我不确定我是否完全理解您的问题。一些可能有帮助的事情:

    1. StageWebView 不理解 AIR 中其他地方使用的 app:/ 或 app-storage:/ 协议。因此,如果使用本地视频文件,请确保您使用的 URL 是 file:/。我对 iOS 不太熟悉,但是如果您无法访问 app-storage 或 app 中的文件(假设您正在尝试这样做),您可以将它们复制到 File.userDirectory(在 Android 上是 SD卡)在应用启动时。

    2. 也许您不需要完整的 StageWebViewBridge?我已经编写了如何使用 StageWebView on my blog. 进行 AS 到 JS 通信(反之亦然)的基础知识,听起来你只需要 AS -> JS,这只是意味着做一个 swv.loadURL("javascript:somefunction('videoURL')")。其中somefunction 设置HTML5 标记的src 参数。

    【讨论】:

    • 感谢您的回复.. 我需要的是相反的。我需要播放一段视频,然后告诉 flash “它完成了”。而不是 AS 到 JS。我需要 JS 到 AS。
    【解决方案3】:

    为了让您的 Air 应用程序和 JavaScript 之间的通信更轻松,您可以试试我们构建的这个 ANE https://github.com/myflashlab/webView-ANE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 2021-01-08
      • 2010-10-09
      • 2023-03-29
      相关资源
      最近更新 更多