のような通知音のURIがありますcontent://media/internal/audio/media/122
がSoundPool
、URIでは機能せず、ファイルパスのapkリソースでのみ機能します。
URI からメディア ファイル パスを取得する方法はありますか? を試してみましUri.getPath()
たが、これは を返します/internal/audio/media/122
が、これは有効なファイル パスではなく、もちろんSoundPool
そのようなパッチでは機能しません。
実際、通知への実際のパスは/system/media/audio/notifications/allegro.ogg
であり、次のような URI から取得する方法はありませんcontent://media/internal/audio/media/122
それともそのために使うべきMediaPlayer
ですか?私はテストしました、それは動作します:
MediaPlayer mp = MediaPlayer.create(this, "content://media/internal/audio/media/122");
mp.start();
MediaPlayer
短い通知音を鳴らすには重すぎて困惑しているので、 を使用したいと思いますSoundPool
。
重量について間違っている場合は教えてくださいMediaPlayer
。また、URI で通知音を再生する正しい方法を提案してください。