मुझे ऑडियो रिकॉर्डॉर्ड क्लास का उपयोग करके कुछ समस्याएं हैं। मैं एक बफर में दर्ज डेटा स्टोर करना चाहता हूं, लेकिन मुझे यकीन नहीं है कि इसे प्राप्त करने का सही तरीका क्या है। मैं बड़ी संख्या में उदाहरणों के माध्यम से चला गया, लेकिन उनमें से अधिकतर कॉम्प्लेटेड थे और कई अलग-अलग दृष्टिकोणों का प्रतिनिधित्व करते थे। मैं सरल एक या सरल स्पष्टीकरण की तलाश में हूं।ऑडियो रिकॉर्ड - बफर में डेटा कैसे प्राप्त करें?
int audioSource = AudioSource.MIC;
int sampleRateInHz = 8000;
int channelConfig = AudioFormat.CHANNEL_IN_MONO;
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int bufferSizeInBytes = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat);
short[] buffer = new short[bufferSizeInBytes];
AudioRecord audioRecorder = new AudioRecord(audioSource,
sampleRateInHz,
channelConfig,
audioFormat,
bufferSizeInBytes);
मैं एक रिकॉर्डिंग समारोह बनाने का प्रयास कर रहा हूँ:
public void Recording() {
audioRecorder.startRecording();
...
audioRecorder.stop();
audioRecorder.release();
}
मुझे पता है कि मैं 'मी .read का उपयोग करने वाले (लघु
यहाँ मेरी परियोजना के लिए मेरे ऑडियो सेटिंग नहीं है [] ऑडियोडेटा, int offsetInShorts, int sizeInShorts) फ़ंक्शन। और यहां मेरी समस्याएं शुरू होती हैं। मुझे यकीन नहीं है कि ऑडियोडेटा बफर कैसे काम करता है - मुझे लगता है कि फ़ंक्शन ऑडियोडेटा में रिकॉर्ड किए गए नमूने रखता है। क्या होता है अगर यह पूरी तरह से डेटा से भर जाता है? यह सबसे पुरानी स्थिति से फिर से लिखना शुरू करता है? अगर मुझे विश्वास है कि मुझे कहीं और एकत्र किए गए नमूने कॉपी करना है। यह एक और सवाल उठाता है - मैं कैसे जांच सकता हूं कि .read (...) फ़ंक्शन बफर पहले से भर चुका है? क्या मुझे समय मापने और बफर सामग्री की प्रतिलिपि बनाने की आवश्यकता है या उस तक पहुंचने का दूसरा तरीका है? क्या मुझे पूरे रिकॉर्डिंग ऑपरेशन के लिए धागा बनाने की ज़रूरत है?
अपने प्रश्नों के एक विषय :)
** qArray ** यहां क्या है? – OnePunchMan
सरणी सूची हो सकती है। मुझे अब याद नहीं आया। इस उदाहरण को संदर्भित करने के लिए बेहतर http://stackoverflow.com/questions/8499042/android-audiorecord-example/13487250#13487250 –