我在android应用中录制用户的语音,后来我将其上传到服务器上,但是服务器仅接受.mp3,.wav和.gsm(8000 Hz,单声道)在服务器上播放声音,我使用mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
将我的文件另存为.3gp。
由于服务器是第三方,我们无法访问它,因此我需要转换或记录文件为mp3 / wav或gsm。
但我不知道如何在mp3或wav中转换或记录文件,android中有没有办法做到这一点
到目前为止,我正在使用以下代码
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(AudioEncoder.AMR_NB);
最佳答案
list 权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
private MediaRecorder recorder ;
public static final int SAMPLING_RATE = 44100;
在您的startRecording方法中使用
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioSamplingRate(SAMPLING_RATE);
File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Recorder");
try{
if(dir.mkdir()) {
System.out.println("Directory created");
} else {
System.out.println("Directory alreadt exist");
}
}catch(Exception e){
e.printStackTrace();
}
//String str = Environment.getExternalStorageDirectory().getAbsolutePath();
recorder.setOutputFile(dir + "/recorded_" + System.currentTimeMillis() + ".mp3");
try {
recorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
recorder.start();
} catch (Exception e) {
e.getMessage();
}
关于android - 在mp3或wav中转换或创建音频文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23988721/