2015-02-13 9 views
5

चलाएं, मैं एकाधिक फ़ाइलों को चलाने के लिए एक ऑडियो प्लेयर को लागू करने की कोशिश कर रहा हूं जैसे कि वे एक ही थे। हालांकि, प्रारंभिक बफर समय केवल प्रथम भाग की अवधि होनी चाहिए, और अन्य फ़ाइलों को अनुक्रम में लोड किया जाना चाहिए।अनुक्रम में एकाधिक ऑडियो फ़ाइलों को एक

उदाहरण के लिए:

  • File1:
    • Part1 - 0: 35s
    • Part2 - 0: 47s
    • Part3 - 0: 07s

फ़ाइल 1 को खेला जाना चाहिए जैसे कि इसमें 1:29 था, लेकिन हम केवल तब तक प्रतीक्षा करेंगे (अधिकतर) भाग 1 खेलना शुरू करने के लिए लोड किया गया है।

मैंने AVAsset पर एक नज़र डाली है, लेकिन यह समस्या को हल करने के लिए प्रतीत नहीं होता है। मैंने AVAudioPlayer का उपयोग करके इसे लागू करने और खुद को सभी तर्क करने का भी सोचा।

क्या किसी के पास इससे पहले कोई समस्या थी?

धन्यवाद!

उत्तर

3

आप इसे प्राप्त करने के लिए AVQueuePlayer का उपयोग कर सकते हैं। आपको अपनी फाइल यूआरएल का उपयोग करके AVPlayerItem बनाने की आवश्यकता है और फिर को queuePlayerWithItems: विधि का उपयोग करके प्रारंभ करने की आवश्यकता है।

AVPlayerItem *firstItem = [[AVPlayerItem alloc] initWithURL:firstPartURL]; 
AVPlayerItem *secondItem = [[AVPlayerItem alloc] initWithURL:secondPartURL]; 
AVPlayerItem *thirdItem = [[AVPlayerItem alloc] initWithURL:thirdPartURL];  

NSArray *itemsToPlay  = [NSArray arrayWithObjects:firstItem, secondItem, thirdItem, nil]; 
AVQueuePlayer *qPlayer = [AVQueuePlayer queuePlayerWithItems:itemsToPlay]; 

[qPlayer play]; 
+0

आशाजनक लग रहा है! – Victor

+0

यह समस्या हल हो, मैं सिर्फ इतना तो एक पर्यवेक्षक को जोड़ने के लिए किया था मैं मिल सकता है जब खिलाड़ी तैयार था '[qPlayer addObserver: स्वयं forKeyPath: @" स्थिति "विकल्प: 0 संदर्भ: शून्य];' – lucoceano

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