下面是一个使用Android的`MediaRecorder`类来实现简易录音软件的示例代码。请注意,这只是一个基本的框架,你可能需要根据你的具体需求进行调整。
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.widget.Button;
import android.view.View;
import java.io.File;
import java.io.IOException;
public class AudioRecorderActivity extends Activity {
private MediaRecorder mediaRecorder;
private String outputFile;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audio_recorder); // 确保你有对应的布局文件
// 设置录音文件的存储路径
File externalStorage = Environment.getExternalStorageDirectory();
outputFile = externalStorage.getAbsolutePath() + "/audio_record_test.3gp";
// 初始化MediaRecorder
mediaRecorder = new MediaRecorder();
// 设置录音源为麦克风
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
// 设置输出格式为3GPP
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
// 设置音频编码器为AMR_NB
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
// 设置输出文件
mediaRecorder.setOutputFile(outputFile);
// 初始化UI组件,例如按钮
Button startButton = findViewById(R.id.start_button);
Button stopButton = findViewById(R.id.stop_button);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
// 准备录音
mediaRecorder.prepare();
// 开始录音
mediaRecorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 停止录音
if (mediaRecorder != null) {
mediaRecorder.stop();
mediaRecorder.release(); // 释放资源
mediaRecorder = null;
}
}
});
}
// 确保在Activity销毁时释放资源
@Override
protected void onDestroy() {
if (mediaRecorder != null) {
mediaRecorder.release();
mediaRecorder = null;
}
super.onDestroy();
}
}
**注意**:
- 确保你的应用有写入外部存储的权限。在Android 6.0(API 级别 23)及以上,你需要在运行时请求权限。
- 替换`R.layout.activity_audio_recorder`和`R.id.start_button`、`R.id.stop_button`为你的实际布局和按钮ID。
- 录音文件被保存在外部存储的根目录下,你可能需要根据你的应用需求调整存储位置。
- 这是一个非常基础的示例,没有包含错误处理、用户反馈等高级功能。你可能需要根据你的应用需求进行扩展。