2009-03-10 14 views
7

मैं इस समय इस रूप में iPhone सेटअप पर अपने उत्पादन ऑडियो मिल गया है: SRC_Convert_table_i32_scalar_stereoमूल निवासी iPhone ऑडियो प्रारूप

:

AudioStreamBasicDescription audioFormat; 

audioFormat.mSampleRate = 48000; 

audioFormat.mFormatID = kAudioFormatLinearPCM; 

audioFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; 

audioFormat.mFramesPerPacket = 1; 

audioFormat.mChannelsPerFrame = 2; 

audioFormat.mBitsPerChannel = 16; 

audioFormat.mBytesPerPacket = 4; 

audioFormat.mBytesPerFrame = 4; 

हालांकि, जब मैं शार्क के माध्यम से अपने प्रदर्शन आंकड़े की जांच मैं इस तरह के रूप में कार्य करता दिखाई दे रहा है

समय का एक उचित हिस्सा ले लो।

इससे मुझे लगता है - आईफोन के लिए आदर्श और सुझाए गए आउटपुट प्रारूप क्या हैं? जिस उपकरण को चलाने के लिए डिवाइस के लिए कम काम की आवश्यकता होती है।

+0

कैसे क्या आप आईफोन के साथ शार्क का उपयोग कर रहे हैं? क्या आप वाकई सिम्युलेटर प्रोफाइलिंग नहीं कर रहे हैं? आरएफ –

+0

नहीं, मैं डिवाइस प्रोफाइल कर रहा हूं। यहां एक ऐसा पृष्ठ है जो आपको बताता है कि प्रोफ़ाइल iPhones पर शार्क कैसे सेट करें: https://developer.apple।कॉम/आईफोन/लाइब्रेरी/प्रलेखन/डेवलपर टूल/अवधारणात्मक/शार्कयूसरगाइड/चयन करने के लिए एक्सेक्यूशनटो नमूना ट्रेस/अध्याय_6_section_9.html –

उत्तर

11

शार्क आईफोन के साथ काम करता है। आप मेनू में "नमूनाकरण> नेटवर्क/आईफोन प्रोफाइलिंग ..." चुनकर आईफोन प्रोफाइलिंग सक्षम कर सकते हैं।

निश्चित रूप से 44100 हर्ट्ज नमूना दर का उपयोग करने का प्रयास करें। 48000 के साथ मैं एक ही समारोह है कि आप callstacks में प्रदर्शित होने तैनात देखते हैं - जब 44100. का उपयोग कर iPhone पर ऑडियो इकाइयों के लिए विहित ऑडियो प्रारूप गैर interleaved है 8.24 रैखिक पीसीएम ऐसी कोई समारोह दिखाता है:

streamFormat.mFormatID   = kAudioFormatLinearPCM; 
streamFormat.mFormatFlags  = 
        kAudioFormatFlagIsSignedInteger 
       | kAudioFormatFlagsNativeEndian 
       | kLinearPCMFormatFlagIsNonInterleaved 
       | (24 << kLinearPCMFormatFlagsSampleFractionShift); 
streamFormat.mSampleRate  = mixing_rate; 
streamFormat.mBitsPerChannel = 32; 
streamFormat.mChannelsPerFrame = 2; 
streamFormat.mFramesPerPacket = 1; 
streamFormat.mBytesPerFrame = (streamFormat.mBitsPerChannel/8); 
streamFormat.mBytesPerPacket = streamFormat.mBytesPerFrame * 
           streamFormat.mFramesPerPacket; 
3

iphone dev centre से (प्रवेश करना आवश्यक) हार्डवेयर suppoorted कोडेक हैं

iPhone ऑडियो हार्डवेयर कोडेक्स

iPhone OS अनुप्रयोगों ऑडियो डेटा स्वरूप की एक विस्तृत रेंज , के रूप में वर्णन किया गया उपयोग कर सकते हैं अगला खंड इनमें से कुछ प्रारूप सॉफ़्टवेयर-आधारित एन्कोडिंग और डिकोडिंग का उपयोग करते हैं। आप एक साथ इन प्रारूपों में एकाधिक ध्वनियां चला सकते हैं। इसके अलावा, आपके एप्लिकेशन और पृष्ठभूमि एप्लिकेशन (विशेष रूप से, आइपॉड एप्लिकेशन) एक साथ इन प्रारूपों में ध्वनियां चला सकता है।

अन्य आईफोन ओएस ऑडियो प्रारूप प्लेबैक के लिए हार्डवेयर कोडेक को नियोजित करते हैं। ये स्वरूप हैं:

  • एएसी
  • ALAC (एप्पल दोषरहित)
  • एमपी 3
+0

मुझे विभिन्न प्रारूपों में दिलचस्पी नहीं है जो आईफोन खेलने में सक्षम है, आउटपुट का मूल प्रारूप क्या है। इस तरह से मैं अपने आउटपुट प्रकार से मेल खा सकता हूं, और आईफोन को बदलने के लिए इसे कम चक्र की आवश्यकता होगी। –

+1

मुझे लगता है कि हार्डवेयर कोडेक का उपयोग करके आप कम सीपीयू चक्र का उपयोग करेंगे ... मैं गलत हो सकता हूं, कोशिश करूँगा और बताउंगा कि यह कैसे जाता है – hhafez

1

48000 सामान्य रूप में ऑडियो के लिए एक अजीब स्वरूप है। हालांकि यह सीडी मानक 44.1 किलोहर्ट्ज से थोड़ा सा (और अनिवार्य रूप से) बेहतर है, लेकिन यह आकार के लायक नहीं है।

क्या आपके ऐप में उच्च गुणवत्ता वाली स्टीरियो ध्वनि का उपयोग करने के लिए कोई अनिवार्य कारण है? दूसरे शब्दों में ऐप स्पीकर या अच्छे हेडफ़ोन पर खेला जाने वाला ऐप है?

रैखिक पीसीएम प्रारूप हार्डवेयर मूल है इसलिए यह इष्टतम होना चाहिए। (के साथ बेवकूफ करने के लिए कोई डिकंप्रेशन नहीं है।) तो कॉल 44.1 किलोहर्ट्ज के लिए एक नमूना हो सकता है।

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