2011-09-06 6 views
6

मैंने एंड्रॉइड ऑडियो रिकॉर्ड के साथ आवाज रिकॉर्ड की है और मैं इसे पेटी मुक्त करने के रूप में ogg vorbis में परिवर्तित करना चाहता हूं। मैंने vorbis-java बीटा आज़माया है, लेकिन ऐसा लगता है कि यह काम नहीं करता है या मैं कुछ गलती करता हूं। मैं इसे विस्तार wav के साथ एक फ़ाइल को बचाने के लिए और सांकेतिक शब्दों में बदलना करने के लिए वॉर्बिस-जावा के उदाहरण का उपयोगओग vorbis के लिए रिकॉर्ड की गई आवाज को एन्कोड कैसे करें?

int  frequency  = 44100; 
int  channel  = AudioFormat.CHANNEL_IN_STEREO; 
int  mAudioSource = MediaRecorder.AudioSource.MIC; 
int mAudioEncoder = AudioFormat.ENCODING_PCM_16BIT; 
try { 
      final File outputFile = new File(mOutputPath); 
      DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(outputFile))); 
      int bufferSize = AudioRecord.getMinBufferSize(frequency, channel, mAudioEncoder); 
      AudioRecord audioRecord = new AudioRecord(mAudioSource, frequency, channel, mAudioEncoder, bufferSize); 
      short[] buffer = new short[bufferSize]; 
      audioRecord.startRecording(); 
      while (isRecordStart) { 
       int bufferReadResult = audioRecord.read(buffer, 0, bufferSize); 
       for(int i = 0; i < bufferReadResult; i++) { 
        dos.writeShort(buffer[i]); 
       } 
      } 
      audioRecord.stop(); 
      dos.close(); 
     } 
     catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 

, लेकिन उत्पादन ....... केवल zzz है

:

यहाँ मेरी कोड हैं

एंड्रॉइड में ogg vorbis को एन्कोड कैसे करें?

उत्तर

2

आप वैव प्रारूप के बजाय फ़ाइल में कच्चे ऑडियो डेटा लिखने लगते हैं। WAV प्रारूप में हेडर हैं, न केवल ऑडियो डेटा।

नोट: वॉर्बिस-जावा का उपयोग करें, लेकिन अपने apk फ़ाइल में एम्बेड करने के लिए उन्हें संकलित करने के लिए http://www.xiph.org/downloads/

उपयोग एंड्रॉयड NDK पर libogg और libvorbis स्रोतों से संकलित है।

फिर आप ऑडियो डेटा को एन्कोड करने के लिए अपने ऐप से देशी कोड को कॉल कर सकते हैं।

8

मुझे लगता है कि मैंने कुछ हफ्ते पहले इस प्रश्न को पढ़ा था और यह भी बहुत निराश था। मैंने Xiph.org की सामग्री का उपयोग करने के लिए आवश्यक एनडीके रैपर लिखना समाप्त कर दिया। एकमात्र पकड़ यह है कि इसे अच्छी तरह से चलाने के लिए, मुझे फ़्लोटिंग पॉइंट निर्देशों को सक्षम करना पड़ा। अनुकरणकों के पास फ्लोटिंग पॉइंट नहीं है, इसलिए यह एमुलेटर को क्रैश कर देगा। इसे किसी भी फोन पर चलाएं, हालांकि, और आप जाने के लिए अच्छे होंगे। यह vorbis फ़ाइलों के साथ इंटरफेसिंग के लिए एक FileInputStream और FileOutputStream अनुकरण करने के लिए डिज़ाइन किया गया है।

https://github.com/nwertzberger/libogg-vorbis-android

+0

नमस्कार सर, यह एपीआई 18 वर्ष से कम के रूप में इस मूल रूप से समर्थित है लगता है। कृपया मुझे यहां मेरे विषय पर सलाह दें - मैं अब कुछ हफ्तों तक टिक रहा हूं - https://stackoverflow.com/q/44324931/1828637 – Noitidart

+1

उत्कृष्ट! मैं मूल सामान के साथ जाऊंगा। – Rannick

+0

हाय वहाँ @ रैनिक मैंने उस विषय को हटा दिया लेकिन यह वही सटीक मुद्दा है, एक और उपयोगकर्ता इसे अधिक स्पष्ट रूप से रखता है - क्या आप यह समझने में मदद कर सकते हैं कि रिकॉर्डिंग ओग क्यों काम नहीं कर रहा है - https://stackoverflow.com/questions/44480762/mediarecorder आउटपुट प्रारूप और एन्कोडिंग के कारण-क्रैश – Noitidart

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