2014-09-23 5 views
7

मेरे पास एक ऐसा ऐप है जो ऑडियोयूनीट नमूना टाइप का उपयोग करके रेंडर कॉलबैक में नमूने फेंकता है। यह आईओएस 8 पर बहिष्कृत है, और ध्वनि अब काम नहीं कर रही है। पिछले आईओएस संस्करण सही काम किया। मुझे AudioUnitSampleType को प्रतिस्थापित करने के तरीके पर कोई दस्तावेज़ नहीं मिल रहा है।ऑडियोयूनीट नमूना टाइप आईओएस 8 पर बहिष्कृत, मेरा रेंडर कॉलबैक अब काम नहीं कर रहा है

केवल जानकारी मुझे मिल गया किसी को भी इसे ठीक करने पर कुछ प्रकाश डाल सकते हैं "अनुचित है विहित स्वरूपों की अवधारणा"

कृपया, मदद, xcode चेतावनी ... है?

उत्तर

11

मुझे एक ही समस्या है। आप SInt32 के साथ प्रतिस्थापित कर सकते हैं। मुझे लगता है कि आपने AudioStreamBasicDescription भी घोषित कर दिया है, इसलिए अपनी घोषणा को streamFormat.mFormatFlags = kAudioFormatFlagsAudioUnitCanonical; से streamFormat.mFormatFlags = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked | kAudioFormatFlagIsNonInterleaved;

उम्मीद है कि इससे मदद मिलेगी।

संपादित करें:

तुम भी typealiasAudioUnitSampleType

संपादित परिभाषित करने के लिए उपयोग कर सकते हैं: आप भी TheAmazingAudioEngine

+0

ब्रावो को बदलने पर विचार कर सकते हैं। धन्यवाद – glenstorey

+1

असल में यह काम नहीं करता है, या कम से कम पहले पैराग्राफ में हिस्सा नहीं है। KAudioFormatIsFloat जोड़ना सही नहीं है और आपको ऑडियो के बजाए शोर देगा। –

+1

मुझे डर है कि यह इतना आसान नहीं है, क्योंकि यह Float32 भी हो सकता है। CoreAudioTypes.h में एक टिप्पणी है: "इन प्रकारों को बहिष्कृत किया गया है। कोड निष्पादित सिग्नल प्रोसेसिंग को ठोस प्रकारों (जैसे फ्लोट, फ्लोट 32, एसआईएनटी 16, एसआईएनटी 32) का उपयोग करना चाहिए। प्रारूप-अज्ञेय कोड, इन प्रकारों के आकारों पर निर्भर होने के बजाय, गणना करनी चाहिए एक ऑडियोस्ट्रीम बेसिक डिस्क्रिप्शन के एमबीइट्सपर चैननेल, एमचैनल्सपेरफ्रेम, और (एमएफएलएजीएस और केलाइनरपीसीएमफॉर्मैटफ्लैग्स एननइंटरलेव किए गए) से नमूने का आकार। इंटरलेव किए गए प्रारूपों के लिए, नमूना का आकार mBytesPerFrame/mChannelsPerFrame है। गैर-अंतःस्थापित स्वरूपों के लिए, यह बस mBytesPerFrame है। " – auco

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