android 13 录音功能示例
时间: 2024-12-25 08:33:13 浏览: 13
在Android 13中,录音功能通常通过RecordAudio权限以及MediaRecorder API来实现。以下是一个简单的示例,展示如何在AndroidManifest.xml中添加权限,并在Activity中录制音频:
```xml
<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- ...其他内容... -->
<activity
<!--... 其他属性 -->
<intent-filter>
<action android:name="android.media.action.RECORD_AUDIO" />
</intent-filter>
</activity>
```
然后在Activity中,你可以创建MediaRecorder实例并开始录制:
```java
import android.media.MediaRecorder;
import android.os.Environment;
public class RecordActivity extends AppCompatActivity {
private MediaRecorder recorder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);
// 创建文件名(这里假设音频保存在外部存储)
File audioFile = new File(Environment.getExternalStorageDirectory(), "my_audio_recording.3gp");
try {
// 初始化媒体记录器
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 使用设备麦克风
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // 输出格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // 编码器,选择合适的编码
recorder.setOutputFile(audioFile.getAbsolutePath());
// 设置准备完成后的回调
recorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
@Override
public boolean onInfo(MediaRecorder mr, int what, int extra) {
if (what == MediaRecorder.INFO_RECORDER_INFO) {
Log.d("Recording", "Recording info: " + extra);
}
return true;
}
});
// 开始录音
recorder.prepare();
recorder.start();
// 这里可以添加一个停止按钮监听,用户按下时停止录音
Button stopButton = findViewById(R.id.stop_button);
stopButton.setOnClickListener(v -> {
recorder.stop();
recorder.release();
recorder = null;
Toast.makeText(RecordActivity.this, "录音已结束", Toast.LENGTH_SHORT).show();
});
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
请注意,这个例子需要API level 23及以上才能运行,因为MediaRecorder的一些特性是在API 23中引入的。
阅读全文