ios/iphone上的SoundCloud API流

ios/iphone上的SoundCloud API流,ios,html,api,sdk,soundcloud,Ios,Html,Api,Sdk,Soundcloud,通过SC API/Javascript SDK 2.0.0执行的流操作是否应该在iOS/Safari上运行? 我发现这与下面的小例子不符 似乎SoundManager能够知道如何以及何时使用html5。我弄错了吗 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <bo

通过SC API/Javascript SDK 2.0.0执行的流操作是否应该在iOS/Safari上运行? 我发现这与下面的小例子不符

似乎SoundManager能够知道如何以及何时使用html5。我弄错了吗

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<h1>Sound Cloud iOS test</h1>
<script src="//connect.soundcloud.com/sdk-2.0.0.js"></script>
<script type="text/javascript">
    SC.initialize({
        client_id: "YOUR_CLIENT_ID"
    });

    SC.stream(
            '/tracks/293',
            function(sound) {
                sound.play()
            }
    );
</script>
</body>
</html>

声音云iOS测试
SC.initialize({
客户id:“您的客户id”
});
SC.stream(
“/tracks/293”,
功能(声音){
播放
}
);

未经用户启动,您无法在iOS设备上强制播放或下载Safari中的任何音频/视频文件

在iOS上的Safari中(适用于所有设备,包括iPad),用户可以 在蜂窝网络上,按数据单元收费,预加载和 自动播放被禁用。在用户启动之前,不会加载任何数据。 这意味着JavaScript play()和load()方法也处于非活动状态 除非play()或load()方法 由用户操作触发。换句话说,用户发起的播放 按钮起作用,但onLoad=“play()”事件不起作用

这将播放电影:

这在iOS上不起任何作用:

您需要将播放操作包装到一个按钮中,以便音频流是选择性加入的,而不是自动的


查看Safari文档以供参考。

我的用例确实需要用户启动,但该操作从stream()中调用play()。直接从绑定操作调用play(),效果与预期一致。谢谢在这种情况下,在尝试从调用事件播放之前,等待流操作完成的最佳方式是什么?似乎回调是禁止触发播放操作的。我能找到的最佳解决方案是在事件处理程序中调用播放&立即暂停。这可以防止回调的播放操作被禁止。