2012-05-09 6 views
0

Привет я пытаюсь добавить звук к игре, кнопок и различных copmponent Я использую этот код с сайта PhoneGap и она отлично работает, когда я проверить его:Ошибка при воспроизведении звука с помощью PhoneGap

<!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="js/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> 

Но когда я использую его им свой собственный код, генерируемый здесь ошибка мой код:

HTML:

<section id="popup"> 
    <div id="popup-bg"> 
    </div> 
    <div id="popup-box"> 
     <div id="popup-box-content"> 
    **<p><a id="gamePlay" class="gameReset button" href="">Play</a></p>** 
     </div> 
    </div> 
</section> 

JavaScript:

var ui = $("#gameUI"); 
    var uiIntro = $("#popup"); 


    //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; 



    $(function(){ 
    init(); 
     }); 


    function init() { 
     uiComplete.hide(); 
     uiCards.hide(); 
     playGame = false; 

     **uiPlay.click(function(e) { //this is the button i want to play    
                //sound after clicking it 
     e.preventDefault(); 

      playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3'); 
        //uiIntro.hide(); 
        //startGame(); 
       });** 
     } 

     ..... 


    /****Audio Part***********/ 
    // 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; 
    } 

Я не поставил весь код только на часть звука. Я получаю эту ошибку после нажатия на кнопку uiPlay:

05-09 16:38:35.580: E/Web Console(521): ReferenceError: Can't find variable: Media  
    at file:///android_asset/www/js/dinopairs6.js:196 

Любая идея, пожалуйста?

Спасибо заранее

ответ

1

Это снова я я просто забудьте добавить тег сценария, включая phonegep.js в моем HTML файл:

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

Надежда это Помощь другая :)

Смежные вопросы