【问题标题】:why doesn't Chrome stream a song using SoundCloud API V3为什么 Chrome 不使用 SoundCloud API V3 流式传输歌曲
【发布时间】:2016-02-25 15:19:42
【问题描述】:
我正在尝试使用 SoundCloud api 流式传输歌曲,但显然它无法在 Chrome 中播放。但它适用于其他浏览器。
SC.initialize({
client_id: '65243ec784b284f1d8a8f950312240fa',
redirect_uri: 'http://example.com/callback'
});
SC.stream('/tracks/293').then(function(player) {
player.play();
});
JSFIDDLE
有什么让它在 Chrome 中工作的想法吗?
【问题讨论】:
标签:
javascript
google-chrome
audio
soundcloud
soundmanager2
【解决方案1】:
在open Github issue 上查看我的解决方案(为方便起见,代码粘贴在下面)。
如果您使用 SoundManager2,则在 dom 准备好时调用 setup。
不要使用 SoundCloud api 的流函数,而是调用 SC.get,然后使用 createSound() 在 SoundManager 中创建一个声音对象,传入刚刚抓取的轨道的 stream_url。
SC.get('/users/711016/tracks').then(function(tracks) {
var sound = soundManager.createSound({
id: 'mySound',
url: tracks[0].stream_url + "?client_id=YOUR_CLIENT_ID",
stream: true
});
sound.play();
});
我想您尝试播放的曲目的 api 路径可能与我的不同。
【解决方案3】:
正如 JAL 所说,不幸的是,这已为人所知,而且似乎没有解决办法。
相反,我建议使用他们的小部件 API 创建自定义 iFrame(如果需要,您可以使其不可见),然后使用 .load() 方法加载您想要的任何轨道。你可以阅读here。
小部件 API 非常好,因为它带有一堆非常有用的事件侦听器,具体取决于您在做什么。