【问题标题】:android recording volume changeandroid录音音量变化
【发布时间】: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) 方法。"

但是我必须将录制的剪辑上传到服务器上。那么有什么方法可以将低音量的声音剪辑转换为高音量的剪辑?

【问题讨论】:

    标签: android audio audio-recording


    【解决方案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";
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多