Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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/9/ios/102.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中以ajax响应播放html5音频_Javascript_Ios_Mobile Safari_Html5 Audio - Fatal编程技术网

Javascript 在iOS中以ajax响应播放html5音频

Javascript 在iOS中以ajax响应播放html5音频,javascript,ios,mobile-safari,html5-audio,Javascript,Ios,Mobile Safari,Html5 Audio,经过大量的谷歌搜索和研究,我发现iOS阻止了html5音频和视频的自动播放。音频和视频只能作为对单击事件的响应播放 现在,我有另一个问题。我经营一个音乐网站,里面有很多用户生成的播放列表。单击play之后,我发出一个ajax请求来获取跟踪URL,然后加载并播放它们。iOS不认为这是一个同步点击事件播放音乐,所以音乐没有开始播放点击播放按钮。我必须单击播放器控件的暂停和播放按钮,使其开始播放(基本上只使用暂停()和播放() 我就是想不出该怎么办。在单击事件之前加载所有MP3 URL是不可行的。有没

经过大量的谷歌搜索和研究,我发现iOS阻止了html5音频和视频的自动播放。音频和视频只能作为对单击事件的响应播放

现在,我有另一个问题。我经营一个音乐网站,里面有很多用户生成的播放列表。单击play之后,我发出一个ajax请求来获取跟踪URL,然后加载并播放它们。iOS不认为这是一个同步点击事件播放音乐,所以音乐没有开始播放点击播放按钮。我必须单击播放器控件的暂停和播放按钮,使其开始播放(基本上只使用暂停()和播放()


我就是想不出该怎么办。在单击事件之前加载所有MP3 URL是不可行的。有没有其他方法可以做到这一点?

好吧,在做了一点胡闹和研究之后,我发现在一次点击中获取和播放播放列表的唯一方法是使用同步请求,而不是AJAX请求。当请求加载时,页面将冻结,但这似乎是唯一的出路

我知道这是一个古老的问题,但对于遇到这个问题的人来说,有一个简单的解决方案,那就是直接从点击处理程序中播放一个简短、无声的声音。理想情况下,这将是一个您已经获取并缓存的声音文件


之后,您将能够从其他处理程序启动播放,即使是那些没有直接用户交互的处理程序。(例如您的AJAX/XHR响应)

太棒了。这是很久以前的事了,但我不知道为什么我没有想到这一点。非常感谢。