onplay,Soundcloud oembed小部件的暂停事件

时间:2015-01-15 10:19:14

标签: javascript soundcloud

我试图使用souncloud javascript api来触发oembeded小部件的onplay和onpause回调。所以基本上我使用SC.oembed在div中创建/显示小部件,然后我想使用SC.stream来控制soundmanager 2选项,但这似乎不可能。

我想要做的就是当有人按下小部件上的游戏时,以及当有人按下暂停时调用一个函数。

实现这一结果的最佳方法是什么?

更新 这是一个代码段

        //set up soundcloud gallery
        SC.initialize({
          client_id: 'MY_CLIENT_ID'
        });

        SC.get('/users/MY_USER/tracks', function(tracks) {
            $('#tracks_holder').addClass('scrollY').empty()
            for (var i = 0; i < tracks.length; i++) {
              console.log(tracks[i].title);
              var newTrack = $('<div class="scTrack"></div>')[0];
              SC.oEmbed(tracks[i].permalink_url, {maxheight:"200px"}, newTrack);
            $('#tracks_holder').append(newTrack);
            }
        });

谢谢!

1 个答案:

答案 0 :(得分:2)

有一个很好的例子 HERE 。 SC允许您将处理程序附加到许多事件,如文档 HERE

  (function(){
    var widgetIframe = document.getElementById('sc-widget'),
        widget       = SC.Widget(widgetIframe);

    widget.bind(SC.Widget.Events.READY, function() {
      widget.bind(SC.Widget.Events.PLAY, function() {
        // get information about currently playing sound
        widget.getCurrentSound(function(currentSound) {
          console.log('sound ' + currentSound.get('') + 'began to play');
        });
      });
      // get current level of volume
      widget.getVolume(function(volume) {
        console.log('current volume value is ' + volume);
      });
      // set new volume level
      widget.setVolume(50);
      // get the value of the current position
    });

  }());

音频相关事件:

  1. SC.Widget.Events.LOAD_PROGRESS - 在声音加载时定期发射。
  2. SC.Widget.Events.PLAY_PROGRESS - 在播放声音时定期发射。
  3. SC.Widget.Events.PLAY - 声音开始播放时触发。
  4. SC.Widget.Events.PAUSE - 声音暂停时触发。
  5. SC.Widget.Events.FINISH - 声音结束时触发。
  6. SC.Widget.Events.SEEK - 在用户搜索时触发。