2011-09-09 19 views
34

मैं इस कोड का उपयोग प्रसारण रिसीवर गतिविधि के अंदर एक ध्वनि फ़ाइल चला रहा हूं:ध्वनि फ़ाइल समाप्त होने पर आप कैसे पता लगाते हैं?

notification.sound = Uri.parse("android.resource://emad.app/raw/seven_chimes"); 

मैं यह जानना चाहूंगा कि यह फ़ाइल कब खेलना समाप्त हो गई है।

मैंने इस तरह एक लूप की कोशिश की लेकिन मुझे लगता है कि यह केवल मीडिया प्लेयर के लिए अच्छा है क्योंकि यह हमेशा = झूठा है, भले ही मैंने सुनिश्चित किया कि ध्वनि फ़ाइल अभी भी खेल रही है:

/* 
* Stay here until the chime sound is finished. 
*/ 
    while (manager.isMusicActive()){ 
    } 

क्या आप मुझे दिखा सकते हैं मुझे manager.isMusicActive()

धन्यवाद के बजाय उपयोग करना चाहिए।

वास्तव में, Emad

+3

स्पष्ट समाधान चलने के बाद कान xD – orlp

+3

द्वारा किया जाएगा का उपयोग करें और एक समापन श्रोता जोड़ सकते हैं सक्रिय होने के लिए :-) मैं चाहता हूं कि प्रोग्रामिंग इतना आसान हो। –

उत्तर

86

आप MediaPlayer वर्ग जब ध्वनि

MediaPlayer mp = MediaPlayer.create(this,Uri.parse("android.resource://emad.app/raw/seven_chimes")); 

mp.setOnCompletionListener(new OnCompletionListener() { 

      @Override 
      public void onCompletion(MediaPlayer mp) { 
       performOnEnd(); 
      } 

      }); 

    mp.start(); 
+0

हाय रोनी, कोड के लिए धन्यवाद। मैं इसे आज़माउंगा और आपको बता दूंगा कि यह कैसे निकलता है। वास्तव में, Emad –

+0

हाय रोनी, मैंने कोड की कोशिश की लेकिन एक त्रुटि प्राप्त हुई जिसमें कहा गया है: मीडियाप्लेयर तर्कों के लिए लागू नहीं है (नया ऑनकंपलेशन लिस्टर() {})। –

+3

हाय इमाड, आपको आयात android.media.MediaPlayer.OnCompletionListener आयात करने की आवश्यकता है; तो यह इसे पहचान लेगा। – Ronny

1

के बाद यह एक बार फिर अपने खेलने सेवा बंद संगीत .. खेलने के लिए सेवा का उपयोग करने का प्रयास करें और आप OnDestroy() सेवा पद्धति पर अपने कार्यक्रम में जोड़ सकते हैं .. आशा है कि यह मदद करता है :)

+0

हाय माइकल, मैं भी आपके रास्ते को आजमाने की कोशिश करना चाहता हूं। क्या आप कोशिश करने के लिए मेरे लिए एक कोड उदाहरण दिखा सकते हैं? धन्यवाद। वास्तव में, Emad –

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

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