java - 一键播放和暂停Kotlin中的媒体录制

标签 java android-studio kotlin

我想知道如何使用一个按钮来播放和暂停MediaRecorder
我的意图是按下按钮并开始录制,当我再次按下该按钮时,它将暂停并录制。

buttonRecordandplaying.setOnClickListener {
  <!--Code to play-->
  grabacion = MediaRecorder()
  grabacion.setAudioSource(MediaRecorder.AudioSource.MIC)
  grabacion.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
  grabacion.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB)
  grabacion.setOutputFile(archivoSalida)
  try {
    grabacion.prepare()
    grabacion.start()

  }catch (e:IOException){

  }
  Toast.makeText(this,"Grabando",Toast.LENGTH_SHORT).show()
      
}
    
<-- code on puse-->
grabacion.stop()
grabacion.release()
Toast.makeText(this, "Grabacin finaliza", Toast.LENGTH_SHORT).show()

最佳答案

您可以添加1个值来检查播放状态

             private boolean isPlaying = false
然后在播放器播放时将其设置为真。并在停止播放器时将其设置为假。
您也可以检查该值并更改播放按钮图标。
         buttonRecordandplaying.setOnClickListener {
            if(!isPlaying) {
               <!--Code to play-->
       
               grabacion = MediaRecorder()
               grabacion.setAudioSource(MediaRecorder.AudioSource.MIC)
               grabacion.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
               grabacion.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB)
               grabacion.setOutputFile(archivoSalida)
               try {
                   grabacion.prepare()
                   grabacion.start()
                   isPlaying = true
                 }catch (e:IOException){

                 }
               Toast.makeText(this,"Grabando",Toast.LENGTH_SHORT).show()
               }else {
                <-- code on puse-->
                isPlaying = false
                grabacion.stop()
                grabacion.release()
                Toast.makeText(this, "Grabacin finaliza", Toast.LENGTH_SHORT).show()
                }
             }

      

关于java - 一键播放和暂停Kotlin中的媒体录制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63158620/

相关文章:

android - 如何从RecyclerView读取数据并在BottomSheet中发送

java - Jar 文件(以 .zip 扩展名下载)无法打开

java - 类间依赖是一种反模式吗

android - 导航 popUpTo 和 PopUpToInclusive 没有清除后台堆栈

android - 无法解析 org.jetbrains.kotlin :kotlin-gradle-plugin:1. 4.10

android-studio - 为什么我使用 Android Studio 创建应用时,标题栏中的应用图标不显示?

java - 在 API 8 中调用 PreferenceFragment 方法

java - 如何使用 okhttp 删除 header "accept-encoding:gzip"

android - 在UdemyStudio中运行项目时出错-提及错误的JVM

java - Android Studio 135.1641136 : does not launch app