シナリオ: 私の.apkで暗号化されたmp3ファイルがあります。解読してMediaPlayerオブジェクトに送信する必要があります。メモリからMediaPlayerにデータを送る
問題: ファイルを読み込んで復号化した後、MediaPlayerで再生するにはどうすればよいですか?
今すぐ。 MediaPlayerには4つのバージョンのsetDataSource()があります。
setDataSource(String path)
setDataSource(FileDescriptor fd)
setDataSource(FileDescriptor fd, long offset, long length)
setDataSource(Context context, Uri uri)
いずれも状況には適していません。 MediaPlayerにInputStreamを与えるのが理想でしょうか?
考えられる解決策:
- 書き込み復号化されたデータは、そのファイルの再生 を提出します。多くのIOオーバーヘッド。
- ダミーのhttpサーバー (ServerSocket?)を作成し、URLを MediaPlayerに渡します。もう一度、乱雑です。私は でもソケットを作成できますか?
誰かがより良い解決策を持っていますか?
私はAudioTrackについて考えていましたが、私の記事では言及するのを忘れました。それはMediaPlayerよりはるかに低レベルです。それは "それは再生のためにオーディオハードウェアにPCMオーディオバッファをストリームすることができます"と言う。 MP3を自分でデコードする必要があります。 – olafure