HOME > MIDI/AUDIO LAB

Sound Cloud API Example


2017/03/26
Sound Widget APIを使って、コンテンツをコントロールする実験をしてみます。
再生をPause した時に、コンテンツが一旦リリースされてしまうようなので、再度読み込んでいます。
seekToは、Play中でしか動作しないようです。

   VOLUME       seek to    minute



	var widgetIframe = document.getElementById('sc-widget');
	widget       = SC.Widget(widgetIframe);
	var url = "https://soundcloud.com/superduperkylemusic/kyle-ispy-feat-lil-yachty";

window.addEventListener('load', function (){

	// 最初に波形を読み込む
	widget.load(url, function() {
	});

	// 指定したeventNameのリスナー関数を追加します。
	widget.bind(SC.Widget.Events.READY, function() {

		// PLAY の状態になったら呼ばれる関数
		widget.bind(SC.Widget.Events.PLAY, function() {

			// get information about currently playing sound
			widget.getCurrentSound(function(currentSound) {
				log.innerHTML = "began to play ";
				log.innerHTML += currentSound.title;
				log.innerHTML += "\n";
			});
		});

		// PAUSE の状態になったら呼ばれる関数
		widget.bind(SC.Widget.Events.PAUSE, function() {
			log.innerHTML += "sound stop\n";
			//コンテンツの再読み込み
			widget.load(url, function() {
			});
		});

		// 再生が最後まで行った状態で呼ばれる関数
		widget.bind(SC.Widget.Events.FINISH, function() {
			log.innerHTML += "sound finish\n";
			//コンテンツの再読み込み
			widget.load(url, function() {
			});
		});

		// ボリュームの状態を読み込む
		widget.getVolume(function(volume) {
			log.innerHTML += "volume value is ";
			log.innerHTML += volume;
			log.innerHTML += "\n";
		});

		// コンテンツの長さを読み込む
		widget.getDuration(function(duration) {
			log.innerHTML += "duration is ";
			log.innerHTML += duration;
			log.innerHTML += "msec\n";
		});

		// ボリュームの値を設定 0.0 -> 1.0
		widget.setVolume(1);

		//自動的に再生
		widget.play();

	});

}, false);








Copyright © Mikata Hawa 2015-2020
fabercastell679@yahoo.com