2014-05-07 14 views
5

मैं ऑडियो फ़ाइलों से कच्चे डेटा को पढ़ने के लिए एंड्रॉइड के मीडियाकोडेक कक्षा का उपयोग कर रहा हूं। यह ठीक काम करता है।क्या मीडियाकोडेक हमेशा 16-बिट ऑडियो आउटपुट देता है?

समस्या यह है कि मुझे नहीं पता कि यह सुरक्षित है कि आउटपुट डेटा हमेशा 16-बिट होगा?

मैं बता सकता हूं, प्रयोगात्मक रूप से, आउटपुट 16-बिट है, लेकिन मुझे नहीं पता कि रनटाइम पर इसे कैसे जांचें। MediaCodec दस्तावेज़ मुझे बताने के लिए प्रकट नहीं होता है। MediaFormat KEY_CHANNEL_MASK मुझे बता सकता है, लेकिन MediaCodec उन झंडे को सेट करने के लिए प्रतीत नहीं होता है। यह नमूना दर, और माइम-प्रकार सेट करता है, लेकिन कुछ भी नहीं जो मुझे थोड़ा-सा आकार स्पष्ट रूप से बता सकता है।

मुझे लगता है कि बाद के ब्लॉक के प्रस्तुति समय के बीच अंतर दिया गया है, और नमूना दर, मुझे इसकी गणना करने में सक्षम होना चाहिए, लेकिन यह बहुत संतोषजनक प्रतीत नहीं होता है।

क्या कहने का कोई तरीका है, या क्या यह कहीं लिखा गया है जिसे मुझे नहीं करना है?

उत्तर

7

वर्तमान में स्टॉक एंड्रॉइड में हमेशा 16 बिट होता है। यदि भविष्य में यह परिवर्तन होता है तो हम प्रारूप को निर्दिष्ट करने वाली एक अतिरिक्त प्रारूप कुंजी जोड़ देंगे। ध्यान दें कि KEY_CHANNEL_MASK केवल आपको बताएगा कि कौन से चैनल शामिल हैं (उदा। बाएं, दाएं, केंद्र, आदि), नमूना प्रारूप नहीं।

+0

तो, अगर मुझे लगता है कि 16-बिट भविष्य का सबूत होगा? – ams

+1

हां, यह सुरक्षित होना चाहिए। – marcone

+0

16 बिट पहले से ही * भविष्य का सबूत नहीं है। चूंकि 24 बिट और अन्य प्रारूप पहले ही समर्थित हैं – yano

1

नहीं, ऐसा नहीं है। यदि आपके पास 24 बिट पीसीएम (डब्ल्यूएवी) फाइलें हैं, तो यह आपको 24 बिट ऑडियो देगा। और ऐसा लगता है कि यह निर्धारित करने का कोई तरीका नहीं है। मैंने यहां एक प्रश्न जोड़ा है MediaCodec and 24 bit PCM

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