के लिए ध्वनि शेड्यूल करने के लिए AVAudioEngine का उपयोग करके मैं एक बड़े ऐप के हिस्से के रूप में मेट्रोनोम बना रहा हूं और मेरे पास व्यक्तिगत ध्वनियों के रूप में उपयोग करने के लिए कुछ बहुत छोटी WAV फ़ाइलें हैं I मैं AVAudioEngine का उपयोग करना चाहता हूं क्योंकि एनएसटीमर में महत्वपूर्ण विलंबता समस्याएं हैं और कोर ऑडियो स्विफ्ट में लागू करने के लिए कठिन लग रहा है। मैं निम्नलिखित का प्रयास कर रहा हूं, लेकिन मैं वर्तमान में पहले 3 चरणों को लागू करने में असमर्थ हूं और मैं सोच रहा हूं कि कोई बेहतर तरीका है या नहीं।कम-विलंबता मेट्रोनोम
कोड रूपरेखा:
- metronome की वर्तमान सेटिंग (बार प्रति धड़क रहा है और हरा प्रति उप विभाजनों की संख्या; धड़क रहा है के लिए फ़ाइल ए, उप विभाजनों के लिए फ़ाइल बी) के अनुसार फ़ाइल में URL की एक सरणी बनाएँ
- प्रोग्राम गति और फ्रेम की लंबाई के आधार पर मौन के उचित संख्या के साथ एक वैव फ़ाइल बनाएं, और प्रत्येक ध्वनि
- उन फ़ाइलों को एक ऑडियोबफर या ऑडियोबफर सूची
- पर पढ़ें 012,
अब तक मैं, एक भी ध्वनि फ़ाइल की एक पाशन बफर (चरण 4) खेलने के लिए सक्षम किया गया है, लेकिन मैं फ़ाइलों की एक सरणी से एक बफर का निर्माण या प्रोग्राम के रूप में चुप्पी बनाने के लिए नहीं कर पाए हैं और न ही क्या मुझे स्टैक ओवरव्लो पर कोई जवाब मिला है जो इसे संबोधित करता है। तो मैं अनुमान लगा रहा हूं कि यह सबसे अच्छा तरीका नहीं है।
मेरा प्रश्न है: क्या AVAudioEngine का उपयोग करके कम विलंबता के साथ ध्वनियों का अनुक्रम निर्धारित करना संभव है और फिर उस अनुक्रम को लूप करना संभव है? यदि नहीं, स्विफ्ट में कोडिंग करते समय कौन सा ढांचा/दृष्टिकोण शेड्यूलिंग ध्वनियों के लिए सबसे उपयुक्त है?
यह सुनिश्चित नहीं है कि इससे मदद मिलती है, लेकिन कोशिश करें [TheAmazingAudioEngine] (https://github.com/TheAmazingAudioEngine/TheAmazingAudioEngine)। यह उद्देश्य सी में लिखा गया है, लेकिन तेजी से –
में ढांचे के रूप में उपयोग किया जा सकता है मैंने टीएएई को संक्षेप में देखा है और यह सबसे अच्छा विकल्प हो सकता है, हालांकि मुझे उम्मीद है कि एक और मूल दृष्टिकोण है। – blwinters