Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iOS(4.3)safari音频问题(多个文件)_Javascript_Html_Audio_Ios4 - Fatal编程技术网

Javascript iOS(4.3)safari音频问题(多个文件)

Javascript iOS(4.3)safari音频问题(多个文件),javascript,html,audio,ios4,Javascript,Html,Audio,Ios4,我的音频标签有问题。我有一个HTML页面(带有javascript),其中连续播放4个声音文件。在iOS5和最新的safari中,一切都玩得很好,但在4.3(.2)中一切都不起作用 下面是我尝试过的许多解决方案。应该注意的是,在一个页面上播放一个声音文件不是问题。我有语音音频播放的页面加载我的大部分网页,这是很好的工作 以下所有方法在5.0和最新的桌面safari中都能完美运行,只是在iOS 4.3模拟器/设备中无法实现: 1) 有一个隐藏的div,设置innerHTML=带有相应src文件的标

我的音频标签有问题。我有一个HTML页面(带有javascript),其中连续播放4个声音文件。在iOS5和最新的safari中,一切都玩得很好,但在4.3(.2)中一切都不起作用

下面是我尝试过的许多解决方案。应该注意的是,在一个页面上播放一个声音文件不是问题。我有语音音频播放的页面加载我的大部分网页,这是很好的工作

以下所有方法在5.0和最新的桌面safari中都能完美运行,只是在iOS 4.3模拟器/设备中无法实现:

1) 有一个隐藏的div,设置innerHTML=带有相应src文件的标记
1a)onended-清除div innerHTML,加载下一个音频文件
1b)设置超时,每个文件之间延迟2秒(1秒长),然后加载下一个声音
2) 隐藏的div,设置innerHTML=4个音频标签
2a)onended-.play()下一个音频文件
2b)设置超时-.play()下一个音频文件
3) 替换为嵌入
4) 替换为对象
5) 仅使用javascript:
a=新音频(src);a、 play();
这种行为最好用“不可靠”来形容。有时只会播放一个声音,其他两个会播放,很少有3个。有时第一个会重复4次(而调试显示应该播放4种不同的声音)

我的最终目标是连续播放4个声音的随机序列。

似乎如果我使用1个javascript音频控件做所有事情,效果会更好

我创建了一个全局音频控件:

var a=new Audio();
每当我想播放声音时,我都会:

a.pause(); 
a.src='newfile.m4a'; 
a.play();

这是一种更简洁的实现音频的方法,无需将声音嵌入页面。如果有许多声音可以播放,这会产生很大的不同。大型音频文件可能存在可用性问题,或者如果用户的互联网连接速度非常慢,