我正在尝试在iPhone上运行SoundCloud iframe API,但我遇到了让它发挥作用的问题。我准备了一个JSFiddle来证明这一点:http://jsfiddle.net/aj3Pw/1/。我试图完成的只是添加一个播放按钮来触发小部件开始播放。在浏览器中加载示例,您会注意到一切正常(播放按钮将开始播放小部件)。但是,在iPhone中加载相同的示例,窗口小部件将无法播放。 “播放”按钮将变为“暂停”按钮,但音频永远不会开始播放。此外,'ready'事件似乎永远不会在iPhone上发射。有关为什么这不适用于iPhone的任何想法?
来自上述JSFiddle的代码:
var iframe = document.querySelector('#player');
var sc = SC.Widget(iframe);
sc.bind(SC.Widget.Events.READY, function() {
var d = document.createTextNode('Ready');
document.querySelector('body').appendChild(d);
});
document.querySelector('button').addEventListener('click', function() {
sc.play();
});
标记:
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F7659975" id="player"></iframe>
<button id="play">Play</button>
答案 0 :(得分:1)
TL; DR:iOS 6应该通过用户操作限制一个调用来执行init,iOS5及以下版本可能无法修复。