Soundcloud oembed 小部件的 onplay、onpause 事件

onplay, onpause event of a Soundcloud oembed widget

我正在尝试使用 souncloud javascript api 来触发嵌入式小部件的 onplay 和 onpause 回调。所以基本上我使用 SC.oembed 到 create/display 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);
            }
        });

谢谢!

有个很好的例子HERE. SC allows you to attach handlers to many events, as is in the docs 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 — 当用户搜索时触发。