gpt4 book ai didi

android - 我第二次按下录制按钮时,我的应用程序崩溃了

转载 作者:搜寻专家 更新时间:2023-11-01 08:21:53 24 4
gpt4 key购买 nike

这是我的代码 fragment 。

private fun record() {                                                          

recorder.setAudioSource(MediaRecorder.AudioSource.MIC)
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)
val path: File = filesDir
try {
tempFile = File.createTempFile("audioTemp", ".3gp", path)
} catch (e: IOException) {
Log.d("recording error", "recording error:", e)
} catch (e: FileAlreadyExistsException) {
Log.d("File already Exist", e.toString())
}

recorder.setOutputFile(tempFile?.absolutePath)
try {
recorder.prepare()
} catch (e: IOException) {
Log.d("recording error", "recording error:", e)
}
recorder.start()
}

private fun stopRecord() {
recorder.stop()
recorder.release()
button_play_sample.isEnabled = true
button_record.isEnabled = true
player.setOnCompletionListener(this)
try {
player.setDataSource(tempFile?.absolutePath)
} catch (e: IOException) {
Log.d("stop recording error", "Stop Recording Error:", e)
}
try {
player.prepare()
} catch (e: IOException) {
Log.d("recording error", "recording error:", e)
}
}

private fun play() {
player.start()
button_record.isEnabled = false
}

override fun onCompletion(mp: MediaPlayer?) {
handler = Handler()
handler?.postDelayed({button_record.isEnabled = true}, 1000)
}

我不知道为什么,但我有一个录制音频的录制按钮。当 Activity 第一次加载时,记录加载。当我第二次按下它时,因为我不喜欢我的第一次录音,而不是覆盖旧文件并重新设置录音,应用程序反而崩溃了。

最佳答案

Android Developer Guide , 它说

When you are done with the MediaRecorder instance free its resources as soon as possible by calling release().

看这个sample code来自开发者网站:

private void stopRecording() {
recorder.stop();
recorder.release();
recorder = null;
}

您的代码 fragment 不会检查是否正在使用 recorder。您可能希望在再次使用 MediaRecorder 对象之前执行此操作。

private fun record() {
if (recording) {
stopRecording()
}

// do recording snippet here...
}

关于android - 我第二次按下录制按钮时,我的应用程序崩溃了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50129268/

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