Не удалось открыть: EACCES (Отказано в доступе) Запись аудио с помощью медиа-рекордера в Android Studio - PullRequest
0 голосов
/ 11 апреля 2019

Я получаю эту ошибку при попытке записать звук в Android Studio, я уже установил разрешения "Record_Audio" и "Write_External_Storage" в манифесте, но он все еще появляется.Появляется ошибка «errorjava.io.IOException: open fail: EACCES (Permission denied)» в первом уловке метода «grabar».

lateinit var recorder: MediaRecorder
lateinit var player: MediaPlayer
var archivo: File? =null
val RECORD_AUDIO:Int = 0;

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    boton1.setOnClickListener {
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)!= PackageManager.PERMISSION_GRANTED){
            ActivityCompat.requestPermissions(this,
                    arrayOf(Manifest.permission.RECORD_AUDIO), RECORD_AUDIO)


        }else{

            grabar()
             }

    }

 private fun grabar() {

        recorder = MediaRecorder()
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC)
        recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)
        val path = File(Environment.getExternalStorageDirectory().getPath())
        try {
            archivo = File.createTempFile("temporal", ".3gp", path)
        } catch (e: IOException) {//ERROR

            e.toString()
            println("Este es el error"+e)
        }

        recorder.setOutputFile(archivo!!.absolutePath)
        try {
            recorder.prepare()
        } catch (e: IOException) {
        }

        recorder.start()
        tv1.text ="Grabando"
        boton1.setEnabled(false)
        boton2.setEnabled(true)




     }
...