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 您的解决方案仅在您要播放一个声音时才有效,如果您在同一页面上有多个声音,则每个播放器都将获得第一个媒体的属性...

于 2014-01-15T17:38:32.583 回答
0

根据 PhoneGap media.play的文档启动或恢复音频文件。

media.play: Start or resume playing audio file.

你可以在这里找到链接

于 2012-10-11T08:06:57.413 回答