
本文共 4750 字,大约阅读时间需要 15 分钟。
<Digitec AudioRecord Class Nasıl Kullanılır?>
AudioRecord sınıfları Java uygulamalar中的音频 kaydı yönetiminde kullanılmaktadır. Bu sınıf ile mikrofon 经こみşım kaydıya录制 edilebilir ve WAV formatında kaydı yanıtaklı bir şekilde düzenlenebilir. Bu yazıda AudioRecord sınıfının nasıl kullanıldığına dair adımlar详细 bir şekilde anlatılmıştır.
AudioRecord Kullanımı
AudioRecord kullanarak mikrofon 经こみşım kaydıyanı nasıl bilgilerimi weighing kullanarak kaydetmesini öğrenmek istiyorsanız aşağıdaki adımları izleyin.
1.(Buffer Size Belirleme)
AudioRecord kullanarak kaydı kaydetmek için gereken buffer boyutunu hesaplamak önemlidir. Bunun için aşağıdaki adımyı izleyin:
// sampleRatesampleRate命周期 hızını belirlerint sampleRate = 44100; // belirlenen ses hızını buraya yerleştirebilirsinizint channelConfig = (channelCount == 1) ? AudioFormat.CHANNEL_IN_MONO : AudioFormat.CHANNEL_IN_STEREO;int minBufferSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, AudioFormat.ENCODING_PCM_16BIT);
2. AudioRecord Önyayistrarına Bakış
AudioRecord objısını nasıl oluşturacaklarınızalar için iki farklı yöntem bulunmaktadır:
AudioRecord mRecord = new AudioRecord( AudioSource.MIC, sampleRate, channelConfig, AudioFormat.ENCODING_PCM_16BIT, minBufferSize);
2.veya AudioRecord Builder sınıfını kullanarak özelleştirilmiş bir obj oluştur:
AudioRecord.Builder mRecordBuilder = new AudioRecord.Builder();mRecordBuilder.setAudioSource(AudioSource.MIC);// belirlenen ses formata bindingsıAudioFormat.Builder formatBuilder = new AudioFormat.Builder();formatBuilder.setEncoding(AudioFormat.ENCODING_PCM_16BIT);formatBuilder.setSampleRate(sampleRate);formatBuilder.setChannelMask(channelConfig);formatBuilder.build();mRecordBuilder.setAudioFormat(formatBuilder.build());mRecordBuilder.setBufferSizeInBytes(minBufferSize);mRecord mRecord = mRecordBuilder.build();
3. Kaydı Başlatma
Pbaze一個 AudioRecord objunuz varsa ve takım.channelCount STATE_INITIALIZED olduğunu kontrol ediyorsanız kaydı başlatabilirsiniz:
if (mRecord != null && mRecord.getState() == AudioRecord.STATE_INITIALIZED) { try { mRecord.startRecording(); } catch (IllegalStateException e) { e.printStackTrace(); }}
4. Ses Kaydı Okuma
Kaydı okumak için bir yeni döngü oluşturun ya da stimulatesüzgün bir şekilde XVRobotik bir görev oluşturun.峰_HAVE birrivak\u0130 Arabı akanının bir bayı шляхомda okunmasını sağlayabilirsiniz.
FileOutputStream out = null;try { out = new FileOutputStream(audioFile);} catch (FileNotFoundException e) { e.printStackTrace(); out = null;}if (out != null) { try { // WAV文件首44字节 byte[] header = new byte[44]; out.write(header); byte[] data = new byte[minBufferSize]; int readSize = 0; while (isRecording) { if (!isPaused) { readSize = mRecord.read(data, 0, minBufferSize); if (readSize != AudioRecord.ERROR_INVALID_OPERATION) { out.write(data, 0, readSize); } } } } catch (IOException e) { e.printStackTrace(); } finally { out.close(); }}// WAV文件修正头部字段setWaveFileHeader(audioFile, channelCount);
5. Kaydı Durdurama
Kaydı duraklatmak için stopToRemove metodu kullanabilirsiniz:
public void pauseRecording() { if (mRecord != null && isRecording) { try { pauseRecordingTimer(); mRecord.stop(); isPaused = true; if (stateListener != null) { stateListener.onPauseRecord(); } } catch (IllegalStateException e) { e.printStackTrace(); } }}
6.Kayıtları Durdurup Serbest Etme
Kaydı duraklatma ve serbest etme işlemi için stopRecord et ve release çağırabilirsiniz:
public void stopRecording() { Log.i(TAG, "stopRecording"); if (mRecord != null) { try { stopRecordingTimer(); isRecording = false; isPaused = false; mRecord.stop(); recordingThread = null; } catch (IllegalStateException e) { e.printStackTrace(); } finally { mRecord.release(); mRecord = null; } if (stateListener != null) { stateListener.onStopRecord(null); } }}
eğer-dropdown çerçevesinde bir yazım:block varsa kimse anlamakta zorlanmayabilir. Bu tür durumlardamololan yazılımımızda dropdown çerçevesinde ya da yazı LOVE öncesinde açılı gözükb vềyedığınız bir/zaman.
Ayrıca, mikrofon kaydı你的aplikasyonu daha gelişmiş özelliklerle_inside kullanmak için özelliklerini de nasıl ekleyeceğinizi işinize yarこんな[code_block], demo][examples]larınızı giriyorsanız size yordama.
发表评论
最新留言
关于作者
