android录音音量变化
Posted
技术标签:
【中文标题】android录音音量变化【英文标题】:android recording volume change 【发布时间】:2012-03-30 11:45:52 【问题描述】:现在我正在开发一个用于录制语音的 android 应用程序。我使用以下代码做到了这一点。
m_recorder.setAudiosource(MediaRecorder.AudioSource.MIC);
m_recorder.setOutputFormat(OutputFormat.THREE_GPP);
m_recorder.setAudioEncoder(AudioEncoder.AMR_NB);
// m_recorder.setAudioEncoder(MediaRecorder.getAudioSourceMax());
m_recorder.setAudioEncodingBitRate(128);
m_recorder.setAudioSamplingRate(44100);
m_recorder.setOutputFile(Environment.getExternalStorageDirectory() + "/audio.3gp");
try
m_recorder.prepare();
m_recorder.start();
但问题是我的声音很小。我在网上搜索了解决方案。我得到的只是
“录制时无法做到这一点 - 但在播放时,您 可以在 MediaPlayer 上使用 setVolume(float, float) 方法。"
但是我必须将录制的剪辑上传到服务器上。那么有什么方法可以将低音量的声音剪辑转换为高音量的剪辑?
【问题讨论】:
【参考方案1】:我使用此代码记录和保存文件,它对我有用:
recorder = new MediaRecorder();
FileOutputStream fos = openFileOutput(fileNameStr,
MODE_PRIVATE);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(fos.getFD());
recorder.prepare();
recorder.start();
【讨论】:
这些行有什么作用 m_recorder.setAudioEncodingBitRate(128); m_recorder.setAudioSamplingRate(44100); 我用那条线来提高音质......我试过你的代码......那个filenamestr变量是什么?...... 我的代码对你有用吗... Filenamestr 是一个包含文件名的字符串变量 我猜它存储在手机内存中......你可以使用 fileNameStr = Environment.getExternalStorageDirectory() + "/audio.3gp";以上是关于android录音音量变化的主要内容,如果未能解决你的问题,请参考以下文章
[RK3288][Android6.0] 调试笔记 --- 录音音量从HAL到APP层会变小问题