SoundCloud API 再生時の音量のデフォルトを設定したい


Soundcloud

毎日SoundCloudAPIをいじっていて、そろそろ飽きてきました。
今日はおなじみのWidgetAPIの音量問題ですが、また少し謎だった事があったのでメモ。

課題

楽曲をloadしてから、再生する際にデフォルトだと100%の音量になってしまいますが、うるさいなぁ と思ってデフォを50%にしたかったのです、なかなかうまくいきませんでした。

たとえば、

widgetIframe = document.getElementById(‘myMusic’);
player = SC.Widget(widgetIframe);

として、playerオブジェクトを作って、

player.load( URL, {auto_play: true)});

としていたので、 load前に player.setVolume(0.5)とすれば事前に音量をセットできるか試したのですが、うまくいかず100%の音量で鳴ってしまいました。

解決案

ただ、load直後に実行してもうまくいかない様子だったので、 
こういう事あるからjsは拙者は苦手でござる と心の中でぼやきながらしゃーなしでなんかのEventにbindする作戦をしました。

さっと流しそうめんな感じでドキュメントを見ると、再生をキャッチする
Events.PLAYというイベントがいましたから、コヤツにbindしました。

コードがこんな感じになった
jsのコーディング規約見てないんですが、絶対怒られる気がする・・・!!(゚∀゚;;)

player.bind(CS.Widget.Events.PLAY, function(){
  if(!currentVolume){
    this.setVolume(0.5); // 初回はとりあえず50%
  }else{
    this.setVolume(currentVolume);  // 音量設定されていたら、それをセット
  }
});

そしたら、ちゃんと初回は50%の音量で鳴ってくれる事が分かりました。
なんかそのうち改善されるんじゃないかって思うのですが、とりあえず今はこんな感じで。

おわり!

 

2014-11-05 | Posted in JavaScript - jQueryNo Comments » 


関連記事

Comment





Comment



*