我正在尝试开发一种录音设备,但是播放时听起来很糟糕。一切都令人作呕,听起来我真的很遥远。
这是代码。我已经研究过尝试更改编码器,比特率和采样率,但是似乎没有什么可以解决这个问题。我到处寻找有关此问题的其他帖子,但没有发现任何东西。有人帮忙吗?
我还意识到这是两个不同的对象,但是我不确定如何检查是录音机还是播放器。想法也很好!
MediaRecorder mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
mRecorder.setAudioEncodingBitRate(1280);
mRecorder.setAudioSamplingRate(4400);
mRecorder.setOutputFile(_audioFilename);
MediaPlayer media = new MediaPlayer();
try {
media.setDataSource(task.getAudio());
} catch (IOException e) {
e.printStackTrace();
}
try {
media.prepare();
} catch (IOException e) {
e.printStackTrace();
}
media.start();
编辑: 下载文件https://sites.google.com/site/chasebusackersfilecabinet/home/ProxiVoiceOver3.mp4?attredirects=0&d=1
或者这是Youtube上的(可能不起作用): https://www.youtube.com/watch?v=va0wlupsuPA&feature=youtu.be
可以只是模拟器吗?
答案 0 :(得分:1)
我认为您的问题在这里
mRecorder.setAudioEncodingBitRate(1280);
mRecorder.setAudioSamplingRate(4400);
比特率是您希望将音频编码为每秒的位数。例如,如果您希望录制的音频文件为每秒1MB,则应将其设置为133333
(每分钟1000000字节*每字节8位/每分钟60秒)。这应该是编码算法的目标值,我认为,如果您有一定的空间可以根据自己的需求和期望的质量进行更改,我会认为。
采样率是每秒回放的帧数,通常您希望将其设置为44100
。这是默认值,因为人类可以感知到高达20KHz的频率,如果您以高于40KHz的频率采样声音,则可以为人类再现所有可听到的频率。