初めに
cordovaで音楽再生にはMedia()オブジェクトを使うことは、以前記事にしたのでそちらを観ていただきたい。今回は、BGMを連続再生する際に指定する、play()メソッドの以下の引数が指定通り連続再生されない現象がみられ、改善策が見つかったので投稿してみる。
function mediaError(e) {} function onSuccess(){} var m = new Media("音データファイル",onSuccess,mediaError); m.play({numberOfLoops:"infinite"});
連続再生を行う方法
連続再生を行う方法をいろいろ調べたのですが、infinite指定を使うように記載さたものが多く観られました。その中で、終了イベントを拾って再再生をすれば良いとの記載が、こちらにありました。
具体的な方法が記載されていませんでしたので、色々調査したところ、以下の方法で対応できることがわかりましたので、サンプルとして記載しておきます。
var m = null; function mediaError(e) {} function onSuccess(){} function mediaStatus(e){ if ( e == 4 ){ //4は再生終了のイベントコード m.play({numberOfLoops:"infinite"}); } } m = new Media("音データファイル",onSuccess,mediaError,mediaStatus); m.play({numberOfLoops:"infinite"});
上記の指定で正常に動作します。infiniteですが、こちらを省略すると後続の処理が中断されてしまうようなので、残すことにすると正常動作が確認できました。
対処療法的な記載なので、あくまで一例として捉えてもらえると嬉しいです。
それではまた。
0 コメント:
コメントを投稿