Android: как проигрывать защищённые аудифайлы из интернета?
Есть база аудиофайлов объёмом больше гигабайта. Моё приложение позволяет выбрать любой файл из этой базы и проиграть его. Включать все аудиофайлы в приложение не хочется - приложение получится слишком тяжелым. Да и к тому же они могут обновляться. Есть мысль сделать сайт (HTTPS или FTP) и выложить эти аудиофайлы на сайт. И пусть приложение скачивает их оттуда.
Я знаю, что android.media.MediaPlayer позволяет проигрывать аудиофайлы с интернета по URL.
Но хочется, чтобы доступ к этим файлам был только у приложения, чтобы все желающие не могли скачивать и прослушивать эти файлы. Подскажите пожалуйста, как это проще всего сделать?
В документации к MediaPlayer я не нашёл информации, как там например можно было бы указать имя пользователя и пароль для доступа к файлам.
Ответы (1 шт):
Я нашёл решение (код на Kotlin):
// Authdata
val username = "login"
val password = "password"
// encrypt Authdata
val toEncrypt = "$username:$password".toByteArray()
val encoded = Base64.encodeToString(toEncrypt, Base64.DEFAULT)
// create header
var headers: MutableMap<String, String> = HashMap()
headers["Authorization"] = "Basic $encoded"
var uri: Uri = Uri.parse("http://site.url")
mediaPlayer = MediaPlayer()
mediaPlayer?.setDataSource(this, uri, headers)