0

こんにちは、私はメディア phonegap api を使用して、オーディオの再生、一時停止、および停止を行っています。これまでのところ、再生、停止、一時停止はできましたが、再開する方法がわかりません助けてください

以下は私が今まで書いたコードです

   var my_media = null;
    var mediaTimer = null;
     var pausePos = 0;
    var counter=0;
    var playing=false;


   function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);

// Play audio

 my_media.play();


  // get audio duration
var duration =  my_media.getDuration();

// set slider data
if( duration > 0 ){
    $('#slider').attr( 'max', Math.round(duration) );
    $('#slider').slider('refresh');
}



// Update my_media position every second
if (mediaTimer == null) {
    mediaTimer = setInterval(function() {
        // get my_media position
        my_media.getCurrentPosition(
            // success callback
            function(position) {
                if (position > -1) {
                    setAudioPosition(position);
                }
            },
            // error callback
            function(e) {
                console.log("Error getting pos=" + e);
                setAudioPosition("Error: " + e);
            }
        );
    }, 1000);
}

}

  /* pause audio */
   function pauseAudio() {
     if (my_media) {
    my_media.pause();
     }
    }

function resumeAudio()
   {

 }

 /* stop audio */
    function stopAudio() {
if (my_media) {
    my_media.stop();
    playing = false;
    my_media.release();
     }
clearInterval(mediaTimer);
mediaTimer = null;
pausePos = 0;
 }




    // onSuccess Callback

   function onSuccess() {
console.log("playAudio():Audio Success");
  }

  // onError Callback

   function onError(error) {
       alert('code: '    + error.code    + '\n' +
    'message: ' + error.message + '\n');
 }

    // Set audio position

   function setAudioPosition(position) {
          pausePos = position;
          position = Math.round(position);
          $('#slider').val(position);
         $('#slider').slider('refresh');
     }


   function player(id)
     {
         //alert(id);
         playAudio("/sdcard/MuseumCache/"+id+"/"+id+".mp3");
          //alert("end");
    }

履歴書機能を書くのを手伝ってください。彼らは、media.play() が再生し、オーディオ ファイルの再生を再開すると言いました

4

3 に答える 3

1

わかりました私は解決策が好きです:Phonegapのドキュメントはひどいです...ひどく説明されているので、彼らの例はずさんです

ポイントは、再生するたびにメディアを再初期化してはならないということです。

var my_media == null;
function playAudio(url) {
          if (my_media === null){
                // so only is your media handler is empty you initialiaze it otherwise you just play
                            my_media = new Media(url, function() {
                                console.log("Audio Success");
                            }, function(err) {
                                console.log("Audio Error");
                            });
          }
          my_media.play();
}
于 2013-07-07T22:37:44.650 に答える
0

Francesco のソリューションは、再生するサウンドが 1 つある場合にのみ機能します。同じページに複数のサウンドがある場合、各プレイヤーは最初のメディアのプロパティを取得します...

于 2014-01-15T17:38:32.583 に答える
0

PhoneGap media.playのドキュメントに従って、オーディオ ファイルを開始または再開します。

media.play: Start or resume playing audio file.

ここでリンクを見つけることができます

于 2012-10-11T08:06:57.413 に答える