Запись и воспроизведение одного и того же звука одновременно на Android - PullRequest
0 голосов
/ 22 февраля 2020

Я работаю над приложением для Android устройств, которые будут воспроизводить записанные в данный момент звуки. Пока у меня есть этот кусок кода

        val startButton: Button = findViewById(R.id.startButton)
        val stopButton: Button = findViewById(R.id.stopButton)
        val playButton: Button = findViewById(R.id.playButton)
        stopButton.isEnabled = false
        playButton.isEnabled = false

        outputFile = Environment.getExternalStorageDirectory().absolutePath + "/recording.aac"

        val file = File(outputFile)

        audioRecorder = MediaRecorder()


        audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC)
        audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
        audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC)
        audioRecorder.setAudioEncodingBitRate(128000)
        audioRecorder.setAudioSamplingRate(44100)
        audioRecorder.setOutputFile(file)


        startButton.setOnClickListener(View.OnClickListener {

            audioRecorder.prepare()
            audioRecorder.start()
            startButton.isEnabled = false
            stopButton.isEnabled = true

        })

        stopButton.setOnClickListener(View.OnClickListener {

            audioRecorder.stop()
            audioRecorder.release()
            stopButton.isEnabled = false
            playButton.isEnabled = true
            startButton.isEnabled = true

        })

        playButton.setOnClickListener(View.OnClickListener {

            var mediaPlayer = MediaPlayer()

            mediaPlayer.setDataSource(outputFile)
            mediaPlayer.prepare()
            mediaPlayer.start()


        })

Я думал о создании потока или асинхронной задачи, но я думаю, что есть проблема с тем фактом, что файл, который я хочу воспроизвести во время записи, используется или еще не существует (поправьте меня, если я ошибаюсь).

Есть ли какое-нибудь простое решение для «Запись и воспроизведение одного и того же звука одновременно»?

Приложение должно работать как MI C

РЕДАКТИРОВАТЬ: Я хочу записать запись в какую-то переменную, манипулировать со звуком (настройка полярности) и воспроизводить его сразу одновременно

Спасибо

...