2012-11-02 6 views
4

처음으로 phonegap 미디어를 사용하여 mp3 파일을 재생하면 정상적으로 작동합니다. 하지만 혹 내가 중지하고 다시 아래의 이유 및 에러 코드 0 것입니다 수있는 것을 phonegap 미디어 오류 코드 0

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




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


if(!playing){ 
// get audio duration 
var duration = my_media.getDuration(); 


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

// Play audio 
my_media.play(); 
playing=true; 
$("#play_pause_img").attr("src","img/pause.png") 


// 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); 
} 
} 
else{ 
    pauseAudio(); 
    playing=false; 
    $("#play_pause_img").attr("src","img/play.png"); 
} 

} 



    function pauseAudio() { 
     if (my_media) { 
      my_media.pause(); 
     } 
     } 

     function resumeAudio() 
      { 
      my_media.play(); 
      } 



     function stopAudio() { 
      if (my_media) { 
       my_media.stop(); 
       my_media.release(); 
       playing=false; 
       $("#play_pause_img").attr("src","img/play.png"); 
       } 
       clearInterval(mediaTimer); 
       mediaTimer = null; 
       pausePos = 0; 
       $('#slider').val(pausePos); 
       $('#slider').slider('refresh'); 
       } 



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


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

코드

되지 않으며 내가 그것을 오류 코드 0

을 보여줍니다 재생 3 시간 않습니다 2 시간 동안 재생할 수 있습니다.

답변

0

동일한 문제가 있습니다. 솔루션을 찾고 있는데 아무것도 찾지 못했습니다.

내 코드 :

$('#button').click(function{ 
    media = new Media('/android_asset/www/sonidos/trans/sound.m4a', play, error);      
}); 
function play(){ 
    media.play(); 
} 
function error(err){ 
    alert(err.code); 
} 

내가 그런 식으로 할 경우, 사운드가 재생되지 않습니다 내가 mediaError에서 오류 코드와 일치하지 않는 것이 0과 항상 경고를 얻을.

테스트 및 테스트 내가 코드를 다음 코드로 작동합니다

$('#button').click(function{ 
     media = new Media('/android_asset/www/sonidos/trans/sound.m4a', play, error); 
     media.play();      
    }); 
    function play(){ 
     ; 
    } 
    function error(err){ 
     ; 
    } 

내가 아는 올바른 방법이 아니다하지만 난 다른 해결책을 찾을 수 없습니다.

경찰서. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다.

1

3.5.0 오류 코드가 0 인 오류 기능이 발생합니다.

이전 문서의 경우 0none을 나타내며 문제를 나타내지 않습니다.

나는이 무시 될 수 이러한 상황에서 보인다, 정말 오류가 유한하기 때문에 출시 받아야합니다 있습니다 오디오 능숙과 관련이있다

2

없습니다. 이 거기 설명 : http://docs.phonegap.com/en/3.3.0/cordova_media_media.md.html 그것은 내가 더 이상 사용하지 않는 그 순간에 내 미디어 객체에 대한 릴리스()를 호출하기 위해 속임수를 썼는지 내 경우

- 나는 그것을 직접 정지()

를 호출 한 후
this.stopAudio = function() { 
    if (my_media) { 
     my_media.stop(); 
     my_media.release(); 
    } 
} 
+0

실제로 문제가 있습니다. 이것은 docs에서 가져온 것입니다.'기본 운영 체제의 오디오 리소스를 해제하십시오. 미디어 재생을위한 한정된 양의 OpenCore 인스턴스가 있기 때문에 이는 Android에서 특히 중요합니다. 애플리케이션은 더 이상 필요없는 미디어 리소스에 대해 릴리즈 기능을 호출해야합니다 .' – sebaferreras

0

작성한 stop 메소드 외에도 onSuccess 메소드에 release 메소드를 추가하십시오.

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