代码之家  ›  专栏  ›  技术社区  ›  naivedeveloper

如何让SoundCloud iframe API在iPhone上运行?

  •  2
  • naivedeveloper  · 技术社区  · 12 年前

    我正在尝试在iPhone上安装并运行SoundCloud iframe API,但在使用它时遇到了问题。我准备了一个JSFiddle来演示这一点: http://jsfiddle.net/aj3Pw/1/ 。我试图实现的是简单地添加一个播放按钮来触发小部件开始播放。将示例加载到浏览器中,您会注意到一切正常(播放按钮将开始播放小部件)。然而,在iPhone中加载相同的示例时,小部件将不会播放。“播放”按钮将变为“暂停”按钮,但音频从未开始播放。此外,“准备就绪”活动似乎也从未在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>
    
    1 回复  |  直到 12 年前
        1
  •  1
  •   Community CDub    8 年前

    TL;DR:iOS 6应该可以通过用户操作限制调用以进行初始化,iOS5及以下版本可能无法修复。

    完整答案如下: https://stackoverflow.com/a/13569799/236135