Play notification audio by URI
android
Solution
Well, I got the easiest way to play audio by URI:
RingtoneManager.getRingtone(this, Uri.parse("content://media/internal/audio/media/122")).play();
I think this is the best what i could achieve.
Problem
I have URI of the notification sound, like `content://media/internal/audio/media/122`, but `SoundPool` doesn't work with URIs, it works with only apk resources of file paths. Is there a way to get media file path from URI? I tried `Uri.getPath()`, which returns `/internal/audio/media/122`, but this isn't valid file path, and of course `SoundPool` doesn't work with such patch. Actually the real path to the notification is `/system/media/audio/notifications/allegro.ogg` , and I see no way to get it from URI like `content://media/internal/audio/media/122` Or should I use `MediaPlayer` for that? I tested, it works: ``` MediaPlayer mp = MediaPlayer.create(this, "content://media/internal/audio/media/122"); mp.start(); ``` I'm confused because `MediaPlayer` seems to be too heavy to just play short notification sound, so I'd prefer to use `SoundPool`. Please tell me if I'm wrong about `MediaPlayer` weight, and suggest correct way to play notification sound by its URI.