2011-05-31 20 views
16

के साथ कई ऑडियो फ़ाइलें चलाएं मैं एक ही समय में कई ध्वनियां चलाने की कोशिश कर रहा हूं।AVPlayer

शुरुआत में मैंने जो दृष्टिकोण लिया है वह कई खिलाड़ियों को बनाना था, लेकिन यह गलत लगता है।

एक ही समय में कई ऑडियो फ़ाइलों को चलाने का सबसे अच्छा तरीका क्या है।

क्या यह उन्हें एवीएसेट्स बनाकर है, लेकिन इस मामले में जब भी मैं चाहूं उन्हें रोकूं और कैसे खेलूँगा।

आपकी मदद की सराहना करते हैं।

मुझे एवीप्लेयर की आवश्यकता है आईपॉड लाइब्रेरी से ध्वनि प्राप्त करना है।

मुझे अंत में ऐप्पल देव टीम के टेकस्पोर्ट से एक जवाब मिला और ऐसा लगता है कि मैंने कई एवीप्लेयर का उपयोग करने का फैसला किया है, लेकिन मुझे लगता है कि मैं सही रास्ते पर हूं।

+0

मैं बहुत यकीन है कि कई AVAudioPlayers आप AVAudioPlayers उपयोग करने के लिए है, तो जाने के लिए रास्ता नहीं है हूँ। बस उन्हें सेट करें और उन्हें एक ही समय में ट्रिगर करें। किसी भी आवंटन को जारी रखना याद रखें और आपको ठीक होना चाहिए। बस ध्यान रखें कि ओपनएड जैसे कुछ की तुलना में AVAudio धीमा है। –

+0

मुझे सामना करने वाले 2 खिलाड़ियों के साथ समस्या यह है कि। एक बार जब मैं दूसरा खिलाड़ी खेलना शुरू कर रहा हूं, तो पहला व्यक्ति दूसरे के अंश के लिए बंद हो जाता है और वे खेलना जारी रखते हैं। –

+0

मैंने अभी तक आईफोन लाइब्रेरी के साथ ओपनएएल को कार्यान्वित करने की कोशिश नहीं की है, लेकिन एक उत्कृष्ट मुक्त ओपनल ध्वनि प्रबंधक है जो पहले ही स्थापित और अनुकूलित है। देखें कि यह मदद करता है: http://www.71squared.com/2011/01/latest-sound-manager/ –

उत्तर

9

प्रत्येक ध्वनि के लिए आप एक नया AVPlayer बनाना चाहते हैं।

NSURL *url = [NSURL URLWithString:pathToYourFile];
AVPlayer *audioPlayer = [[AVPlayer alloc] initWithURL:url];
[audioPlayer play];

+0

@ डेविड मॉर्टन, अपने स्वयं के प्रश्न के नीचे वर्णित मूल पोस्ट के रूप में, और इस के रूप में उत्तर बताता है, आप प्रत्येक ध्वनियों के लिए एक अलग AVPlayer का उपयोग करेंगे। अगर आपको स्ट्रीम करने के लिए अपनी आवाज़ की आवश्यकता नहीं है और अपने सैंडबॉक्स में ध्वनि का उपयोग कर सकते हैं, तो आप कई एवीऑडियो प्लेयर उदाहरणों का उपयोग कर सकते हैं, जो मेरा ऐप करता है। –

+0

मैं कई उदाहरणों का उपयोग करता हूं। गड़बड़ अभी भी मौजूद है। –

0

खैर, मेरी समाधान अनुभव के बाहर आता है। यदि आवश्यक हो तो मैं जल्दी से एक परियोजना को पका सकता हूं। लेकिन इसके अलावा, इसे स्टैनफोर्ड में MoMu API के उपयोग की आवश्यकता है। इसमें फ़ाइलों को पढ़ने के लिए WVIn और WvOut ऑब्जेक्ट्स बनाना शामिल है। इन ऑब्जेक्ट्स के ऑडियो नमूने को फ़ाइलों को एक साथ चलाने के लिए बस आउटपुट बफर को खिलाया जाना चाहिए। हालांकि एपीआई AVFoundation का उपयोग करता है, इस परियोजना में AVFoundation का कोई स्पष्ट उपयोग नहीं है।

1

मैंने कभी यहां एक प्रश्न का उत्तर नहीं दिया है और मुझे नहीं पता कि किसी के भी अभी भी इसका जवाब देने का इंतजार है, लेकिन मेरा लेना है ... इसे आज़माएं और इसे काम करना चाहिए, मैं वर्तमान में 12 प्लस खेलने के लिए इसका उपयोग कर रहा हूं एक साथ ऑडियो नमूने। मैं माफी माँगता हूँ अगर मैंने कुछ newbish ..

आप एक बटन दबाएँ कर रहा हूँ और आप इस कोड को चलाने ...

लेकिन पहले आप की जरूरत है:

  1. परियोजना के लिए AVFoundation और # आयात करने की आवश्यकता .h फ़ाइल में भी आयात करें, फिर हम इसके साथ ध्वनि खेल सकते हैं।
  2. "AVAudioPlayer * myAudio;" डालने की आवश्यकता है निश्चित रूप से शीर्ष पर उद्धरण चिह्नों के बिना कहीं (आमतौर पर दृश्य के शीर्ष पर)।

तो बस ...

-(IBAction)playButtonPressed:(id)sender { 

    NSURL *yourMusicFile; 
    yourMusicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"your_Song_Name" ofType:@"mp3"]]; 

    myAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil]; 
    [myAudio play]; 
    NSLog(@"Button -playButtonPressed- has been pressed!"); 
} 
संबंधित मुद्दे