2013-03-19 20 views
5

के लिए बाधा प्रारंभ/समाप्ति ईवेंट कैसे प्राप्त करें I AVPlayer के साथ ऑडियो फ़ाइलें चला रहा हूं। मैंने AVAudioSessionInterruptionNotification लागू किया।AVPlayer

AVAudioSession *session = [AVAudioSession sharedInstance]; 
    NSError *errorInAudio = nil; 
    [session setActive:YES error:&errorInAudio]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(interruption:) name:AVAudioSessionInterruptionNotification object:nil]; 

    [session setCategory:AVAudioSessionCategoryPlayback error:nil]; 

यह एप्लिकेशन (आवाज नियंत्रण की तरह) अग्रभूमि में ठीक काम करता है एक रुकावट आया जब।
लेकिन मैंने ऐप को पृष्ठभूमि मोड में बनाया और आईपॉड प्लेयर खोला और खेलना शुरू कर दिया। उस समय उसका बाधा नहीं बुलाया जा रहा है और यहां तक ​​कि जब मेरा ऐप अग्रभूमि में प्रवेश करता है।
समस्या क्या हो सकती है। कृपया मदद करे।

उत्तर

3

तो आप का उपयोग AVAudioPlayer आप AVAudioPlayerDelegate के अनुरूप कर सकते हैं तो आप docs में सूचीबद्ध - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

अधिक तरीकों की तरह तरीकों को लागू कर सकते हैं।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद करने के लिए। मुझे AVAudioPlayer का प्रतिनिधि मिला। लेकिन मैं जानना चाहता हूं कि AVPlayer का उपयोग करके इसे लागू करने का कोई तरीका है या नहीं। क्या आप एक विचार सुझा सकते हैं। –

+0

मेरे पास AVPlayer के साथ बहुत अधिक अनुभव नहीं है लेकिन यह SO प्रश्न एक ही समस्या को शामिल करता है: http://stackoverflow.com/questions/6837002/no-avplayer-delegate-how-to-track-when-song-finished -प्लेइंग-ऑब्जेक्ट-सी-आईफ़ोन –

+0

वैसे भी मैं अपने एवीप्लेयर को AVAudioPlayer में बदल रहा हूं। आपके सुझाव के लिए धन्यवाद। –

1

सूचित किया जाए जब AVPlayer पृष्ठभूमि में बाधा आती है, आप AudioSession की अधिसूचना सुन सकते हैं

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerStopped) name:AVAudioSessionInterruptionNotification object:nil];