【发布时间】:2011-05-14 16:20:41
【问题描述】:
除了用户执行的单击事件的处理程序之外,我似乎无法在 iOS 4.2.1 上的 Mobile Safari 中播放音频媒体。即使这样,如果以任何异步方式(ajax, setTimeout 等)调用 player.play(),它也不起作用。
我尝试在player.play() 之前调用player.load()。我尝试在其处理程序调用player.play() 的 dom 元素上触发单击事件。我试过同时使用音频和视频标签。
iOS 4.2.1 之前的所有漏洞似乎都已关闭。有什么想法吗?
【问题讨论】:
-
很确定这是设计使然。您的某些用户可能使用按数据使用量收费的手机套餐,他们不希望您的媒体自动播放。
-
我明白这是设计使然。但是,在 4.2.1 之前,存在几个允许规避的漏洞。 FWIW,我实际上并没有尝试在页面加载时自动播放音频。我使用的音频源 url 不稳定,无法缓存,所以我在点击处理程序中进行 ajax 调用来解析音频源。这本身就足以触发 iOS 的防御机制。
-
我今天花了大约一个小时改组代码,因为我在异步函数(Ajax 调用)中有
play()函数。即使在单击处理程序中,通过实际单击,它仍然不起作用。所以:当心,我猜。我希望 Apple 能够公布我们需要遵循的具体标准。
标签: iphone ipad html ios mobile-safari