2012-05-01 22 views
13

एंड्रॉइड में getPlaybackHeadPosition() AudioTrack वर्ग की विधि फ्रेम में व्यक्त प्लेबैक हेड स्थिति लौटाती है, मिली सेकेंड में इसका समतुल्य मूल्य क्या है?एंड्रॉइड में मिलीसेकंड रूपांतरण में फ्रेम्स

उत्तर

20

मेरा अनुमान है कि यह है कि यह

(track.getPlaybackHeadPosition()/track.getSampleRate()) * 1000.0 

दूसरे शब्दों में हो सकता है, फ्रेम की संख्या प्रति सेकंड फ्रेम की संख्या से विभाजित खेले। फिर आप मिलीसेकंड प्राप्त करने के लिए परिणाम 1000 से गुणा करें।

एक फ्रेम में प्रति चैनल एक नमूना होता है और इसलिए नमूना दर के बराबर होना चाहिए।

उदाहरण के लिए, यदि getPlaybackHeadPosition() रिटर्न 8654 और getSampleRate() रिटर्न 8000 तो ट्रैक की शुरुआत के बाद समय (8654/8000) * 1000 या 1081.75ms होगा। (यह मानते हुए चल बिन्दु गणित)

+0

हाँ, आप सही हैं। –

+0

उत्तर को स्वीकार करने के लिए स्वतंत्र महसूस करें :) – Nick

+0

उदाहरण के लिए, यदि ऑडियो में 8000 नमूने/सेकंड हैं, (track.getPlaybackHeadPosition()/8) आपको मिली सेकंड में वर्तमान प्लेबैक हेड स्थिति देता है। –

0

@Nike द्वारा जवाब सही है।

लेकिन वहाँ एक समस्या है।

अगर हम MediaExtractor.seekTo विधि, AudioTrack.getPlaybackHeadPosition() रिटर्न जमा मूल्य कहते हैं।

MediaExtractor.getSampleTime()/1000 है वर्तमान स्थिति के लिए सही एमएस।

आप इसे देख सकते हैं!