2012-05-01 3 views
3

안녕하세요, phoneGap Media 개체를 사용하여 오디오 콘텐츠를 재생하려고하지만이 오류가 발생합니다. 잡히지 않은 ReferenceError : 미디어가 정의되어 있지 않습니다. 폰갭 문서에서 코드의 예는 http://docs.phonegap.com/en/1.0.0/phonegap_media_media.md.html enter image description hereMedia 개체를 사용하여 장치에 오디오 파일 기록 및 재생

나는 아래의 코드를 사용하고 있습니다 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
         "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
    <head> 
    <title>Media Example</title> 

    <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script> 
    <script type="text/javascript" charset="utf-8"> 

    // Wait for PhoneGap to load 
    // 
    document.addEventListener("deviceready", onDeviceReady, false); 

    // PhoneGap is ready 
    // 
    function onDeviceReady() { 
     playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3"); 
    } 

    // Audio player 
    // 
    var my_media = null; 
    var mediaTimer = null; 

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

     // Play audio 
     my_media.play(); 

     // 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) + " sec"); 
         } 
        }, 
        // error callback 
        function(e) { 
         console.log("Error getting pos=" + e); 
         setAudioPosition("Error: " + e); 
        } 
       ); 
      }, 1000); 
     } 
    } 

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

    // Stop audio 
    // 
    function stopAudio() { 
     if (my_media) { 
      my_media.stop(); 
     } 
     clearInterval(mediaTimer); 
     mediaTimer = null; 
    } 

    // 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) { 
     document.getElementById('audio_position').innerHTML = position; 
    } 

    </script> 
    </head> 
    <body> 
    <a href="#" class="btn large" 
    onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_ 
    _rockGuitar.mp3');">Play Audio</a> 
    <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a> 
    <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a> 
    <p id="audio_position"></p> 
    </body> 
</html> 

어떤 생각, 매우 U 감사하십시오

+1

phonegap.js에 대한 참조를 사용중인 버전과 일치하도록 변경 했습니까? –

+0

이것은 다시 나다 나는이 코드가 작동하는 문제를 발견했다. 나는 활동에 사용 된 LoadUrl 메서드에 문제가 있었다는 것을 발견했다. –

+0

Mr @SimonMacDonald는 게임에 애니메이션을 적용하고 단추에 소리를내는 가장 좋은 방법이다. 카드 ... –

답변

1

린 내가 사운드를 재생할 수없는 브라우저에서 링크를 열 때 소리 재생을 제공하는 것이 제대로 작동하지 않습니다.

그래서 친절 자산/www가 폴더 안에 UR rockGuitar.mp3를 저장하고 해당 파일을 재생하는 동안

src= "/android_asset/www/rockGuitar.mp3"; 
newMedia= new Media(src,onSuccess1,onError); 

로 파일의 SRC를 제공하거나 소리의 SRC에서 링크를 작업을 제공합니다.

+0

나는 그것을 시험해 그것이 당신의 경우에는 크롬과 함께 잘 작동한다 나는 그것이 브라우저에 문제라고 생각한다. –