在Android中,采集语音主要涉及到使用Android的MediaRecorder类,下面是详细的步骤和代码示例:
1. 添加必要的权限
你需要在你的AndroidManifest.xml文件中添加录音的权限:
<usespermission android:name="android.permission.RECORD_AUDIO" />
<usespermission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. 初始化MediaRecorder对象
在你的Activity或Service中,你需要创建一个MediaRecorder对象,并设置其音频源、输出格式和输出文件:
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(audioFile.getAbsolutePath());
3. 准备录音
调用MediaRecorder的prepare()方法来准备录音:
recorder.prepare();
4. 开始录音
调用MediaRecorder的start()方法开始录音:
recorder.start();
5. 停止录音
当你想停止录音时,你可以调用stop()方法:
recorder.stop();
6. 释放资源
别忘了释放MediaRecorder对象以释放系统资源:
recorder.release();
recorder = null;
完整代码示例:
import android.media.MediaRecorder;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private MediaRecorder recorder;
private String audioFile;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
audioFile = getExternalFilesDir(null).getAbsolutePath() + "/myrecording.3gp";
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(audioFile);
try {
recorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
recorder.start(); // Recording starts
// ... later on
recorder.stop(); // Recording stops
recorder.release(); // Release resources
}
}
注意:以上代码仅作为示例,实际使用时需要处理异常,以及考虑录音时长、录音状态等问题。