我正在为应用使用soundcloud API。我的代码所做的第一件事是在soundcloud上获取我最喜爱的曲目。每个轨道使用Jquery显示为li元素。当我单击其中一个列表元素时,soundcloud会加载相关的轨道并显示其波形。
SC.get(track_url, function(track){
var waveform = new Waveform({
container: document.getElementById("waveform"),
innerColor: "#333"
});
waveform.dataFromSoundCloudTrack(track);
var streamOptions = waveform.optionsForSyncedStream();
SC.stream(track.uri, streamOptions, function(stream){
window.exampleStream = stream;
}); // SC.stream
}); //SC.get()
此处track_url
是我点击的曲目(http://api.soundcloud.com/..。)的uri,而#waveform
是将显示波形的div。
一切正常。当我点击我最喜欢的曲目时,播放器会加载歌曲和波形,但歌曲不会自动播放 ..
如何在单个SC.stream()方法中组合SoundManager2 autoPlay
参数和Waveform.js waveform.optionsForSyncedStream();
?我认为这是一个语法问题,但我无法解决它。
SC.stream(track.uri, {autoplay:true}, streamOptions, function(stream){
window.exampleStream = stream;
}); // SC.stream
使用此代码,单击时歌曲会自动播放,但同步的流不再起作用,因为SC.stream的第三个参数应该是一个函数...(未捕获的TypeError:对象不是函数)
请帮忙!! :)
答案 0 :(得分:0)
好的,我刚刚发现在您的网站上安装SoundManager2可以让您更好地控制声音。要解决我的问题,我只需将Soundmanager的默认autoPlay
选项设置为true
。
将Soundmanager SDK添加到我的html标题中。创建了一个新脚本。
soundManager.setup({
onready: function() {
soundManager.defaultOptions = {
autoPlay: true
}
}
});
然后我去了
SC.stream(track.uri, streamOptions, function(stream){
window.exampleStream = stream;
}); // SC.stream
答案 1 :(得分:0)
它应该在没有SoundManager的情况下工作。 SoundCloud将启动此库 - 请查看API。看起来你在.stream()
中有太多的参数SC.stream(track.uri , { autoPlay: true });