iOS(iPad)中的一个页面上有多个HTML5媒体元素

时间:2012-02-22 01:15:05

标签: ios ipad html5 html5-video mobile-website

我的research让我了解到Apple的媒体元素处理程序是一个单例,这意味着当video在后​​台播放时我无法播放audio。我的任务是建立一个幻灯片演示框架,客户想要一个背景音轨,与子弹点匹配的定时音频画外音,以及可以是图像或视频的可变媒体 - 或多个媒体元素的定时循环。

当然,这些媒体都不适用于iOS。每个媒体元素都会取消之前的内容。

我最初的想法是在存在视频时将配音音频嵌入到视频中,但是此设置的现有Flash版本取决于现有资产,所以我几乎必须使用已交付的内容。

这有什么解决方法吗?我正在测试 iOS 4.3.5 。世界上最聪明的开发者都在这个网站上 - 我们必须能够想出一些东西。

编辑:将我的iPad更新为 iOS 5.0.1 ,问题仍然存在。

5 个答案:

答案 0 :(得分:4)


如何用CSS来做这个伎俩 也许您了解一家名为vdopia的公司,该公司在移动设备上发布视频广告。 http://mobile.vdopia.com/index.php?page=mobilewebsolutions
他们声称开发了所谓的vdo视频格式,实际上只是为了运行一个css sprite:D
我的意思是你可以拥有你的视频"作为一个框架图像,然后在那里附加html5音频标签。

我想知道你的回复

答案 1 :(得分:1)

您是在使用Web应用程序还是使用本机应用程序?

如果您正在使用Web应用程序,那么您将面临一个受到伤害的世界。这是因为您根本无法控制Mobile Safari不会立即提供的内容。 如果是这种情况,我会向利益相关者表示诚实。

如果您正在使用本机应用程序,则可以采用涉及UIWebView和ObjC之间来回通信的机制。这实际上是可行的。

这个想法如下:

在HTML5文档中插入特殊的<object>元素,您可以根据自己的需要自行设置,并特别注意维护非标准属性的attr- *命名约定。 在这里,您可以在要播放的多媒体工件中插入ID,路径和其他控制变量。

然后你可以构建一些javascript(在jQuery之上,p.e。),它通过UIWebView或HTTP上的委托机制与ObjC进行通信。我将在下面讨论这个选择。

$(document).ready()上说,你会浏览所有具有特殊类的对象。您仔细选择识别所有特殊<object>的课程。 您构建了此类对象的列表,并将它们传递给应用程序的ObjC部分。您可以使用JSON轻松序列化此类列表。 然后在ObjC中你可以用它们做你想做的事。无论何时你想要播放它们,都可以通过AVPlayer或其他框架播放它们(再次使用JS-ObjC桥来实际发信号通知本机部分播放特定元素)。

您可以通过UIWebView中的委托模式或通过HTTP与ObjC“通信”。 然后你就可以使用JS-ObjC桥了。

HTTP方法在某些情况下有意义,但它涉及很多的额外代码,并且资源很耗力。

如果您正在构建一个ObjC应用程序,并想要了解如何实际构建一个符合这些需求的ObjC-JS桥的更多细节,请回复我们:)

我现在暂停这篇文章了,因为知道它是否实际上是Native App会很高兴。

干杯。

答案 2 :(得分:0)

目前这是not possible。正如您在播放视频时注意到的那样,它会占用整个屏幕的快速时间并将浏览器移动到后台。目前唯一的解决方案是将音频和视频合并为mp4格式并播放该单项。

如果我理解正确,您无法将音频和视频合并在一起,因为它依赖于闪存?由于iOS无法播放闪存,因此您应将音频和视频合并在一起,并使用闪存作为备份。有许多html5播放器使用javascript尝试播放html5视频,然后回退到flash进行备份。

答案 3 :(得分:0)

你提到视频的现有Flash设置 - 它是一个swf文件,你可以将它导入视频/音频编辑软件并在顶部添加音轨吗?

像这样:http://www.youtube.com/watch?v=J2vvH7oi8m8&feature=youtube_gdata_player

此外,如果它是Flash文件,您是否会将其转换为AVI或类似iOS?无论如何你都必须这样做,你有机会添加音轨。

答案 4 :(得分:0)

您是否可以使用网络服务与FFMpeg实时合并流,然后将一个输出流式传输到quicktime?

详细说明像http://directshownet.sourceforge.net/about.html这样的图书馆也可以。看起来他们有方法

DESCombine - 使用DirectShow编辑服务将视频和音频文件(或文件片段)组合到单个输出文件中的类库。提供了一个帮助文件(DESCombine.chm)来使用该类。

然后可以使用它将结果数据作为对呼叫的响应返回并通过HTML5播放器加载。