2012-12-18 5 views
5

私はphonegap 2.2.0を使用していました。私は中断することなく再生するためにオーディオをループするいくつかのコードを試しました。しかし、私が試したコードは、私のアンドロイドデバイスで動作していません。私のアプリケーションはネイティブアプリです。私は、デバイスでこのアプリを実行したときには、ループが働き、ここに私のコードですされていない1回だけ再生されている:phonegapでオーディオをループするには?

 


    function playAudio(url) { 

     var my_media = new Media(url, 
      function() { 
       console.log("playAudio():Audio Success"); 
      }, 
      function(err) { 
       console.log("playAudio():Audio Error: "+err); 
      }, 
      function(status) { 
        alert(status); 
        // if (my_media.MEDIA_STOPPED === 4) { 
        //  playAudio(host_root+"resources/medias/sardana.mp3"); 
          // my_media.play(); 
        // } 
     }); 

     // Play audio 
     my_media.play({numberOfLoops:99}); 
    } 

 

あなたはここで間違っているものを私に伝えることができますか?

答えて

3

PhoneGapではまだループはAndroidではサポートされていません。したがって、numberOfLoopsはiOSデバイス以外は何もしません。

+2

'のvarでmyMedia。 var loop = function(status){ if(status === Media.MEDIA_STOPPED){ myMedia.play(); } }; myMedia = new Media( "/ audio/my.mp3"、null、null、loop); myMedia.play(); ' – Sadi

11

ステータスの変更を聞き、MEDIA_STOPPEDで支払いを開始します。ユーザーがこれは私のために働いた

)(snd.stop、音を止めるsnd.pause()を使用しないようにしたい場合:

document.addEventListener("deviceready", onDeviceReady, false); 

    var getPhoneGapPath = function() { 
     var path = window.location.pathname; 
     path = path.substr(path, path.length - 10); 
     return path; 
    }; 

    var snd = null; 

    function onDeviceReady(){ 
     snd = new Media(getPhoneGapPath() + "sound/funk_game_loop.mp3", onSuccess, onError, onStatus); 
     snd.play(); 
    } 

    // onSuccess Callback 
    function onSuccess() { 
    } 
    // onError Callback 
    function onError(error) { 
    } 
    // onStatus Callback 
    function onStatus(status) { 
     if(status==Media.MEDIA_STOPPED) { 
      snd.play(); 
     } 
    } 
+0

これはいくらかの遅延がありますが – Amyth

+0

私はこのソリューションを使用していますが、音楽はたびたび止まるでしょう。あたかもonStatusが起動されないことがあるようです。この問題を抱えている人は誰ですか? – Leo

+0

新しいループを開始するといくらかの遅延時間があります。しかし、それは私のために働く。 – Tuan

関連する問題