Я работаю над приложением для 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
РЕДАКТИРОВАТЬ: Я хочу записать запись в какую-то переменную, манипулировать со звуком (настройка полярности) и воспроизводить его сразу одновременно
Спасибо