релиз медиа-рекордера вызывает зависание пользовательского интерфейса на уровне API 23 - PullRequest
0 голосов
/ 18 марта 2020

Мой MediaRecorder вызывает зависание пользовательского интерфейса при вызове release (). эта ошибка возникает только на API 23 и менее. Я попытался поместить его в работоспособное и кэшируемое исключение. Я следил за документацией и несколькими руководствами в Интернете, но пользовательский интерфейс все еще зависает при выпуске ().

в трассировке журнала нет ошибок, что делает эту ошибку даже странной

это мой код :

fun startRecord(path:String)
    {audioRecorder = MediaRecorder().apply {
        setAudioSource(MediaRecorder.AudioSource.MIC)
        setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
        setOutputFile(path)
        setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)


        try {
            prepare()
        } catch (e: IOException) {
            Log.e("record_log", "prepare() failed")
        }

            start()



    }
    }
fun stopRecording(){

        if(audioRecorder!=null){

            try{audioRecorder!!.stop()
                }
            catch (e:RuntimeException){}
            finally {
                audioRecorder!!.release()
                audioRecorder=null
            }

        }
    }
...