2013-11-04 115 views
0

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

回答

3

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

在iOS上的Safari(适用于所有设备,包括iPad),用户可能位于蜂窝网络并按每个数据单元收费时,将禁用预加载和自动播放。直到用户启动它才会加载数据。这意味着,除非用户操作触发play()或load()方法,否则JavaScript 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

===编辑===

一个潜在的改进是使用较低的比特率/高压缩音频的移动产品。质量将会显着降低。只有在您的应用程序中可以接受时才使用。