Soundcloud SC.stream():波形和自动播放

时间:2015-03-24 18:39:33

标签: javascript syntax soundcloud waveform

我正在为应用使用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:对象不是函数)

请帮忙!! :)

2 个答案:

答案 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 });