iOS (4.3) safari 问题与音频(多个文件)
Posted
技术标签:
【中文标题】iOS (4.3) safari 问题与音频(多个文件)【英文标题】:iOS (4.3) safari issue with Audio (multiple files) 【发布时间】:2012-01-05 21:06:28 【问题描述】:我的 AUDIO 标签有问题。我有一个 html 页面(使用 javascript),其中连续播放 4 个声音文件。在 ios 5 和最新的 safari 中,一切都很好,但在 4.3(.2) 中,一切都无法正常工作。
以下是我尝试过的许多解决方案。需要注意的是,在一个页面上播放一个声音文件是没有问题的。我的大部分页面都在页面加载时播放了旁白音频,效果很好。
以下所有方法都可以在 5.0 和最新的桌面 safari 中完美运行,但在 iOS 4.3 模拟器/设备中则不行:
1) 有一个隐藏的 div,设置 innerHTML = 带有适当 src 文件的标签 1a) onended - 清除 div innerHTML,加载下一个音频文件 1b) setTimeout,在每个文件之间延迟 2 秒(长 1 秒)然后加载下一个声音 2) 隐藏 div,设置 innerHTML = 4 个音频标签 2a) onended - .play() 下一个音频文件 2b) setTimeout - .play() 下一个音频文件 3) 替换为 EMBED 4) 替换为 OBJECT 5) 仅使用 javascript: a = 新音频(src); a.play(); 最好将这种行为描述为“古怪”。有时只会播放 1 个声音,其他两个会播放,很少播放 3 个。有时第一个会重复 4 次(而调试显示应该播放 4 个不同的声音) 我的最终目标是连续播放 4 种声音的随机序列。
【问题讨论】:
【参考方案1】:似乎如果我用 1 个 javascript 音频控制做所有事情,事情会更好......
我创建了一个全局音频控件:
var a=new Audio();
每当我想播放声音时,我都会这样做:
a.pause();
a.src='newfile.m4a';
a.play();
【讨论】:
这是一种更简洁的实现音频的方式,无需在页面上嵌入声音。如果可以播放多种声音,则会产生很大的不同。大型音频文件或用户的互联网连接速度非常慢时,可能会出现可用性问题,以上是关于iOS (4.3) safari 问题与音频(多个文件)的主要内容,如果未能解决你的问题,请参考以下文章
使用iOS 5 Mobile Safari自动播放音频,还有其他解决方法吗?
createMediaElementSource ios safari 没有音频