के लिए AVAudioPlayer का पुन: उपयोग करना मेरे पास AVAudioPlayer का एक उदाहरण है जो कई ध्वनियां चलाएगा। क्या एक नई ध्वनि के साथ AVAudioPlayer इंस्टेंस प्रदान करने का कोई तरीका है, या क्या मुझे initWithData के साथ एक नया उदाहरण बनाना है :?एक अलग ध्वनि
उत्तर
ऑब्जेक्ट्स का पुन: उपयोग करना आम तौर पर एक बुरा विचार है, आम तौर पर अपनी वस्तुओं को यथासंभव कम से कम रहने की कोशिश करें। इससे आपके कोड के संभावित राज्यों की संख्या कम हो जाती है और इसके बारे में तर्क आसान हो जाता है। ("यह मूल्य कहां से आया? शायद यह पिछले उदाहरण के उपयोग से बचे हुए है?" यक।) मापने योग्य समस्याओं में भाग लेने के बाद ही इस नियम को तोड़ दें।
इस विचार के साथ आगे पढ़ने के लिए आप questions tagged “immutable” ब्राउज़ कर सकते हैं।
मौजूदा AVAudioPlayer उदाहरण में कोई नई फ़ाइल पास करने के लिए कोई एपीआई नहीं है। हालांकि, AVAudioPlayer निर्माण महंगा नहीं है, इसलिए आपको प्रदर्शन के बारे में चिंतित नहीं होना चाहिए, जब तक आप उनके साथ किए जाने के बाद उदाहरण जारी करते हैं।
यदि आपके पास एक दूसरे पर चलने वाली ध्वनि का एक निश्चित सेट है, या बार-बार खेलने की संभावना है, तो आप प्रत्येक ध्वनि के लिए एक AVAudioPlayer इंस्टेंस बना सकते हैं और उचित उदाहरण पर play
पर कॉल करके उन उदाहरणों का पुन: उपयोग कर सकते हैं।
यदि एक समय में केवल एक ध्वनि चल रही है, और आप नई आवाज़ें उत्पन्न कर रहे हैं (उदाहरण के लिए उपयोगकर्ता इनपुट के आधार पर टेक्स्ट-टू-स्पीच के साथ), तो मेरे पास आम तौर पर एक एकल खिलाड़ी होता है। जब एक नई आवाज बजाती है, तो मैं [player stop]
पर कॉल करता हूं, पुराना खिलाड़ी जारी करता हूं, और नई ध्वनि फ़ाइल के साथ एक नया चालू करता हूं।
हाँ, मैंने इस प्रश्न के लिए Google की खोज की क्योंकि मैंने सोचा कि बहुत से नए AVAudioPlayer को प्रदर्शन में गिरावट का कारण बन जाएगा। आपका उत्तर एक बार में मेरे प्रश्न हल करता है। 1) AVAudioPlayer में फ़ाइल को संशोधित करने का कोई तरीका नहीं 2) AVAudioPlayer बनाना महंगा नहीं है। –
यह स्वीकार्य उत्तर होना चाहिए। – Herm
एआरसी के तहत कोई सुझाव? – piperchester
- 1. ध्वनि
- 2. एक साथ ध्वनि बजाना एंड्रॉइड
- 3. एक सिस्टम ध्वनि वॉल्यूम स्तर
- 4. जावा जनरेटिंग ध्वनि
- 5. PyGame ध्वनि
- 6. ध्वनि पहचान?
- 7. NavigationWindow ध्वनि
- 8. पायगम, ध्वनि
- 9. सी # में ध्वनि chords?
- 10. ध्वनि क्लाउड
- 11. रिकॉर्ड प्रणाली ध्वनि (stereomix) एक फ़ाइल
- 12. एक विशेष ध्वनि आवृत्ति कैसे उत्पन्न करें?
- 13. एक ही समय में एकाधिक ध्वनि चलाएं
- 14. आईफोन ऐप - डब्ल्यूएवी ध्वनि फाइलें
- 15. रिकॉर्ड ध्वनि और एंड्रॉइड में मॉड्यूटेड ध्वनि खेलते हैं?
- 16. एंड्रॉइड/लोडिंग ध्वनि फ़ॉन्ट्स पर MIDI सिंथेसाइज़र ध्वनि में सुधार
- 17. चेक प्रणाली ध्वनि सी #
- 18. रोलिंग बॉल की ध्वनि
- 19. कष्टप्रद क्लिक ध्वनि TWebbrowser
- 20. राउटिंग आईफोन ऑडियो ध्वनि
- 21. ध्वनि lib हैकेल
- 22. ध्वनि पिच पैन लाभ?
- 23. सरल सी ++ ध्वनि एपीआई
- 24. जावा में सिस्टम ध्वनि
- 25. एंड्रॉइड एप्लिकेशन ध्वनि मुफ्त
- 26. जावा एकाधिक ध्वनि
- 27. कॉल समारोह जब ध्वनि
- 28. UILocalNotification कस्टम ध्वनि
- 29. अच्छी ध्वनि पुस्तकालय?
- 30. क्रॉस प्लेटफ़ॉर्म ध्वनि API
यह @ फर्नांडो के प्रश्न का उत्तर नहीं है, और यह एक अति-सामान्यीकरण है। ऐसे कई संदर्भ हैं जहां ऑब्जेक्ट पुन: उपयोग नई ऑब्जेक्ट सृजन की तुलना में बेहतर दृष्टिकोण है। –
मुझे लगता है कि क्रिस्टोफर सही है। यह प्रदर्शन कारणों से है। उदाहरण के लिए, तालिका दृश्य मौजूदा कोशिकाओं का पुन: उपयोग करता है और ऐप्पल स्पष्ट रूप से इसे प्रोत्साहित करता है। कम से कम आपने पोस्टर्स के सवाल का जवाब दिया था, "फ़ाइल को बदलने का कोई तरीका नहीं है" जैसा कि क्रिस्टोफर ने किया था। –
तालिका दृश्य एक विशेष मामला है क्योंकि इसे कठिन प्रदर्शन आवश्यकताओं (स्क्रॉलिंग) को पूरा करना है। लेकिन आम तौर पर एक नए ऑब्जेक्ट निर्माण की प्रदर्शन लागत काफी कम है और मैं इस बयान से खड़ा हूं कि प्रदर्शन समस्या को मारने तक वस्तुओं का पुन: उपयोग करना एक बुरा विचार है। – zoul