通过 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 设备上的 Safari 中强制播放或下载任何音频/视频文件。
在 iOS 上的 Safari 中(适用于所有设备,包括 iPad),用户可以 在蜂窝网络上,并按数据单元、预加载和 自动播放被禁用。在用户启动之前不会加载任何数据。 这意味着 JavaScript play() 和 load() 方法也处于非活动状态 直到用户启动播放,除非使用 play() 或 load() 方法 由用户操作触发。换句话说,用户发起的 Play 按钮有效,但 onLoad="play()" 事件无效。
这会播放电影:
<input type="button" value="Play" onclick="document.myMovie.play()">
这在 iOS 上没有任何作用:
<body onload="document.myMovie.play()">
您需要将播放操作包装到一个按钮中,以便音频流是选择加入而不是自动的。
查看 Safari 文档中的这篇文章以供参考。