2012-11-26 22 views
7

के बाद खेलना बंद कर देता है यदि उपयोगकर्ता सही प्रश्न का उत्तर देता है और गलत होने पर "गलत" ध्वनि की आवश्यकता है। ध्वनि पहले खेल रहा है लेकिन पांचवें समय के बाद मैं सही ढंग से जवाब देता हूं कि चौथे बार "सही" ध्वनि पहले से पांचवीं बार आउटपुट हो, कोई आवाज नहीं सुनाई जा सकती है। ऐसा लगता है कि संगीत केवल 4 वें बार खेला जा सकता है। इसका कारण क्या है?फोनगैप मीडिया ध्वनि स्टॉप 5 बार

अपडेट * मैं media.release मेरी stopAudio में जोड़ा(), लेकिन अभी तक ध्वनि 6 (सुधार) के लिए सुना जा सकता है लेकिन यह अभी भी सूट मेरा मामला नहीं है। (कई सवाल है कि एक ही ध्वनि प्रभाव की जरूरत है)

Js.file

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

    // Play audio 
    function playAudio(src) { 
     // Create Media object from src 
     my_media = new Media(src, null, soundCB); 
     my_media.play(); 
    } 

    function soundCB(err){ 
     console.log("playAudio():Audio Error: "+err); 
    } 

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

///// सवाल हिस्सा //////

$("#answer").live('tap', function(event){ 

if(buttonAns==true) { 
    $this= $(this);  
    buttonAns = false; 
var choice = $this.attr("class"); 
if((correctAnsNo == 0 && choice =="answer0")||(correctAnsNo == 1 && choice =="answer1")||(correctAnsNo == 2 && choice =="answer2")){ 

     playAudio('/android_asset/www/audio/fall.mp3'); //falling sound  
     correct = parseInt(correct)+2; 

     playAudio('/android_asset/www/audio/correct.mp3'); //dingdong 
    }else{   
     playAudio('/android_asset/www/audio/wrong1.wav');   
    } 
    if(quesNo < wordsNo){ 
     setTimeout(function() {  
      buttonAns = true;      
      db.transaction(queryQuesDB, errorCB); 
     },1800); 
    }else{ 
     endLevel();   
    } 
} else { 
    event.preventDefault(); 
}  
}); 

उत्तर

8

एंड्रॉयड की एक निश्चित राशि है आवाज बजाने के लिए संसाधन। प्रत्येक बार जब आप एक फ़ाइल खेलना चाहते हैं तो आप एक नया मीडिया ऑब्जेक्ट बनाते रहेंगे। आपको उन ध्वनियों को रिलीज़ करने की आवश्यकता है जिन्हें आप उपयोग नहीं कर रहे हैं। यदि आपको उन ध्वनियों को कई बार चलाने की ज़रूरत है तो उन ध्वनियों के संदर्भ को रखने के लिए अलग-अलग मीडिया ऑब्जेक्ट्स बनाने पर विचार करें।

media.release पर पढ़ें।

+0

अलग वस्तु से आपका क्या मतलब है? सहायता के लिए धन्यवाद। –

+0

तीन वर्र्स बनाएं। क्रमशः गिरावट, सही और गलत के लिए एक। –

6

मुझे एक ही समस्या थी। समाधान मैंने किया .:

 if(media){ 
     media.stop(); 
     media.release(); 
    } 
    media = new Media(...); 
5

यहाँ मेरी चाल है: पर यह पूरा चलने के बाद या कोई त्रुटि आ मैं इसे जारी किया।

function playAudio(url) { 
    try { 

     var my_media = new Media(url, 
      // success callback 
      function() { 
       **my_media.release();** 
      }, 
      // error callback 
      function (err) { 
       **my_media.release();** 
      }); 

     // Play audio 
     my_media.play(); 
    } catch (e) { 
     alert(e.message); 
    } 
} 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^