【发布时间】:2017-02-22 11:58:24
【问题描述】:
搜索抛出堆栈我感到困惑。那么,我的问题是什么:
我正在使用AudioRecord 类录制一些音频,代码如下:
AudioRecord record = new AudioRecord(AudioSource.VOICE_RECOGNITION,
SAMPLING_RATE,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
mBufferSize);
record.startRecording();
int read = 0;
while (mIsRecording) {
read = record.read(mAudioBuffer, 0, mBufferSize);
if ((read == AudioRecord.ERROR_INVALID_OPERATION) ||
(read == AudioRecord.ERROR_BAD_VALUE) ||
(read <= 0)) {
continue;
}
proceed();
write(out);
}
录制完成后,我将这个.pcm原始数据从AudioRecord转换为.wav:
private void convertRawToWav() {
File file_raw = new File(mFileNameRaw);
if (!file_raw.exists()) { return; }
File file_wav = new File(mFileNameWav);
try {
PcmAudioHelper.convertRawToWav(WavAudioFormat.mono16Bit(SAMPLING_RATE), file_raw, file_wav);
if (handler != null) {
handler.onRecordSuccess();
}
} catch (IOException e) {
e.printStackTrace();
if (handler != null) {
handler.onRecordSaveError();
}
}
}
我以后需要.wav 格式,因为我的应用程序中有修剪功能,从不支持OGG 格式的Ringdroid 复制而来,因此:请不要建议我将音频录制为OGG ON苍蝇
主要问题:
Wav 格式太重,我需要将其转换为更小的格式,即 MP3 或 OGG。 MP3 已获得专利,因此不能选择。我需要的是:
将.wav文件转换为.ogg文件,重量会小很多
我发现了什么:
This library,但它只在录制时将.pcm 数据转换为.ogg,我需要在将其修剪为.wav 后转换整个文件
【问题讨论】:
标签: android wav audio-recording ogg