я пытаюсь позвонить
mediaRecorder.start ()
. Это дает эту ошибку.
java.lang.IllegalStateException
at android.media.MediaRecorder.native_start(Native Method)
at android.media.MediaRecorder.start(MediaRecorder.java:1143)
at com.yyy.mystory.xxx.ui.camera.CameraVideoFragment$startRecordingVideo$2$onConfigured$1.run(CameraVideoFragment.kt:691)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6863)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Когда я записываю с телефона, он работает отлично, но когда я пытаюсь записать через Bluetooth-гарнитуру, он дает сбой, как описано выше. Мой код выглядит примерно так:
if (mediaRecorder != null) {
mediaRecorder?.release()
mediaRecorder = null
}
mediaRecorder = MediaRecorder()
mediaRecorder?.apply {
setAudioSource(MediaRecorder.AudioSource.MIC)
setVideoSource(MediaRecorder.VideoSource.SURFACE)
setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
setOutputFile(nextVideoAbsolutePath)
setVideoEncodingBitRate(compositionQuality.videoBitrate)
setAudioEncodingBitRate(compositionQuality.audioBitrate)
setAudioChannels(2)
setAudioSamplingRate(44100)
setVideoFrameRate(60)
setVideoEncoder(MediaRecorder.VideoEncoder.H264)
setAudioEncoder(MediaRecorder.AudioEncoder.AAC)
prepare()
}