Я получаю аудиобайт за байтом успешно и сохраняю его во внутреннем хранилище следующим способом:
inputStream = url.openStream()
val folder = File(MainApp.getContext().filesDir, "records")
folder.mkdir()
val FILENAME = "asd.mp3"
fstream = FileOutputStream(File(folder, FILENAME))
var c: Int = 0
try {
while (!isInputStreamClosed && inputStream .read().also { c = it } != -1) {
fstream?.write(c)
}
} catch (e: Exception) {
Log.d("stream", "write exception")
}
А в другой операции я получаю сохраненный файл mp3 и при попытке воспроизвести этот файл с помощью Android проигрывателя по умолчанию:
val builder = VmPolicy.Builder()
StrictMode.setVmPolicy(builder.build())
builder.detectFileUriExposure()
val mydir = File(MainApp.getContext().filesDir, "records")
val path = "${mydir}/asd.mp3"
val intent = Intent(Intent.ACTION_VIEW)
val file = File(path)
intent.setDataAndType(Uri.fromFile(file), "audio/mp3")
activity?.startActivity(intent)
Когда я пытаюсь воспроизвести сохраненный файл mp3 с помощью «MediaPlayer», проблем нет. Я хочу воспроизвести этот файл с помощью проигрывателя Android по умолчанию, но я получаю сообщение Toast: «Проигрыватель не поддерживает этот тип аудиофайлов». Это из-за использования внутренней памяти? Что мне делать? Заранее спасибо.