2016/01/04

1/04/2016

初めに

 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 コメント:

コメントを投稿