У меня есть ресурс (музыкальный файл), на который указывает Ури.Как я могу проверить, доступен ли он, прежде чем пытаться воспроизвести его с MediaPlayer?
Его Uri хранится в базе данных, поэтому, когда файл удаляется или на внешнем хранилище, которое отключено, тогда я просто получаю исключение, когдаЯ вызываю MediaPlayer.prepare ().
В вышеуказанной ситуации я хотел бы играть системную мелодию звонка по умолчанию.Конечно, я мог бы сделать это после того, как поймал вышеприведенное исключение, но, может быть, есть более элегантное решение?
edit: я забыл упомянуть, что музыкальные файлы Uri на самом деле получены с помощью RingtonePreference.Это означает, что я могу получить указание Uri на мелодию звонка на внутреннем хранилище, внешнем хранилище или на мелодию звонка системы по умолчанию.
Примеры Uri:
- content: // settings / system / ringtone- для выбора мелодии звонка по умолчанию
- контент: // media / internal / audio / media / 60 - для мелодии звонка во внутренней памяти
- контент: // media / external / audio / media / 192 -для рингтона на внешнем хранилище
Я был доволен предложенным методом «новый файл (путь) .exists (), так как он спас меня от упомянутого исключения, но через некоторое время я заметил, что он возвращает false длявсе мои мелодии звонка ... Есть еще идеи?