0

我正在使用 HTML5 和 Javascript 开发一个移动网络应用程序。目标是使用 HTML5 音频标签创建一个带有在触摸事件后播放声音的按钮的页面。但是我注意到触摸事件和正在播放的声音之间存在显着延迟,即使在音频文件被缓存之后也是如此。我认为这可能是由于 iOS Safari 处理声音的方式,但我不确定。这个问题有什么解决方案或创造性的解决方法吗?如何最大限度地减少触摸事件和播放之间的延迟?

4

1 回答 1

3

音频延迟可能是因为 iOS 中的缓冲问题导致蜂窝数据收费。用户必须明确触发事件才能开始下载内容。

在 iOS 上的 Safari(适用于所有设备,包括 iPad)中,用户可能在蜂窝网络上并按数据单位收费,预加载和自动播放被禁用。在用户启动数据之前不会加载数据。这意味着 JavaScript play() 和 load() 方法在用户开始播放之前也是不活动的,除非用户操作触发了 play() 或 load() 方法。换句话说,用户启动的播放按钮有效,但 onLoad="play()" 事件无效。

- https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW1

=== 编辑 ===

一项潜在的改进是为移动产品使用较低比特率/较高压缩音频。但是,质量将大大降低。仅在您的应用程序可接受的情况下使用。

于 2013-11-04T22:21:06.120 回答