###前提・実現したいこと
http://s.docs.monaca.io/ja/reference/cordova_5.2/media/
こちらを参考に音楽再生、効果音再生を実装しました。
しかし、効果音を再生するとiphone(iOS10.3.1)のモナカデバッガーでは音楽が停止してしまいます。androidでは停止していません。
音楽を停止せずに効果音を再生するほうほうはないでしょうか。
###現象
iphoneでは音楽または効果音再生終了時に、ほかに再生中のものも停止してしまいます。その際にはsuccess、error処理は通らないようです。
###該当のソースコード
音楽再生と効果音再生で関数を分けています。
音楽再生では二重再生を防止しています。
javascript
1 // メディア 2 var my_media = null; 3 4 /** 5 * 音楽ボタンクリック処理 6 * @param クリックオブジェクト 7 **/ 8 var clickBtn = function(obj) { 9 10 if (my_media != null) { 11 // メディア作成済みなら解放 12 my_media.release(); 13 } 14 15 // 再生 16 var media = "audio/" + obj.id + ".mp3"; 17 var index = location.pathname.lastIndexOf('/'); 18 var src = location.pathname.substring(0, index + 1) + media; 19 20 my_media = new Media(src, 21 // success callback 22 function() { 23 console.log("playAudio():my_media Audio Success:" + obj.id); 24 my_media.release(); // 再生終了後解放 25 }, 26 // error callback 27 function(err) { 28 console.log("playAudio():my_media Audio Error: " + obj.id + ":" +err); 29 my_media.release(); // エラー後解放 30 }); 31 my_media.play(); 32 33 } 34 35 /** 36 * 効果音ボタンクリック処理 37 * @param クリックオブジェクト 38 **/ 39 var clickSeBtn = function(obj) { 40 41 42 // 再生 43 var media = "audio/" + obj.id + ".mp3"; 44 var index = location.pathname.lastIndexOf('/'); 45 var src = location.pathname.substring(0, index + 1) + media; 46 47 var se_media = new Media(src, 48 // success callback 49 function() { 50 console.log("playAudio():se_media Audio Success:" + obj.id); 51 // se_media.release(); // 再生終了後解放 52 }, 53 // error callback 54 function(err) { 55 console.log("playAudio():se_media Audio Error: " + obj.id + ":" +err); 56 se_media.release(); // エラー後解放 57 }); 58 se_media.play(); 59 60 }
###試したこと
解放処理で一緒に解放されるのかとも思いましたが、解放を外しても同じです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。