のような通知音の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 で通知音を再生する正しい方法を提案してください。