gpt4 book ai didi

android - 在android中录制特定时间段的语音

转载 作者:太空宇宙 更新时间:2023-11-03 13:32:44 24 4
gpt4 key购买 nike

我有两个按钮,一个用于开始录制,另一个用于停止录制。我成功地录制了声音并存储在 sdcard 中:

现在我想要的是如果我在 15 秒之前按下停止按钮我应该保持原样,但是如果录制时间超过 15 秒它应该自动停止录制并将录制的文件存储在 sd 卡中:

我的录音代码在这里:

**

public void startRecording(View view) throws IOException {
startButton.setEnabled(false);
stopButton.setEnabled(true);
File sampleDir = Environment.getExternalStorageDirectory();
try {
//audiofile = File.createTempFile("sound", ".aac", sampleDir);
audiofile = File.createTempFile("sound", ".m4a", sampleDir);
} catch (IOException e) {
Log.e(TAG, "sdcard access error");
return;
}
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setOutputFile(audiofile.getAbsolutePath());
recorder.prepare();
recorder.start();


}

**

停止录制是

public void stopRecording(View view) {

startButton.setEnabled(true);
stopButton.setEnabled(false);
recorder.stop();
recorder.release();

}

我该怎么办?

最佳答案

基本上,您需要为此实现 TimeTask。

 if (view.getId() == R.id.stop) {
new Timer().schedule(new TimerTask() {

@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mediaRecorder.stop();
mediaRecorder.reset();
mediaRecorder.release();
}
});

}

}, 15000); //<-- Execute code after 15000 ms i.e after 15 Seconds.

}

关于android - 在android中录制特定时间段的语音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com