Я записываю звук в приложении для Android с помощью MediaRecorder и загружаю файл на мой сервер.Я создаю рекордер следующим образом (Kotlin):
mediaRecorder = MediaRecorder()
mediaRecorder!!.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder!!.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder!!.setAudioChannels(1);
mediaRecorder!!.setAudioSamplingRate(22050);
mediaRecorder!!.setOutputFile(filename);
mediaRecorder!!.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder!!.setMaxDuration(5 * 60 * 1000) // 5 minutes
mediaRecorder!!.setOnInfoListener { _, what, _ ->
if (what == MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
stopRecording()
}
}
Я могу загрузить и воспроизвести файл на Android, родной iOS и Chrome (для настольных ПК), но он не работает в Safari на iOS и macOS.
Файл подается с сервера с типом содержимого аудио / mpeg.
У меня похожий код записи на iOS, и этот файл, также служащий аудио / mpeg, отлично работает в Safari.
Есть идеи, что случилось?