2012-10-28 8 views
6

この質問は以前から尋​​ねられましたが、Android(Jelly Beanまで)の新しいバージョンでは、ファイルのダウンロードとストリーミングの進捗状況がわかりました。同じ時間。それは本質的に可能だと同様に、これらが利用可能setDataSourceメソッドですとしてAPIから、それは、見ていません:Android MediaPlayer - 同時にダウンロードしてストリーミングを再読みしました

void setDataSource(String path) 
Sets the data source (file-path or http/rtsp URL) to use. 
void setDataSource(Context context, Uri uri, Map<String, String> headers) 
Sets the data source as a content Uri. 
void setDataSource(Context context, Uri uri) 
Sets the data source as a content Uri. 
void setDataSource(FileDescriptor fd, long offset, long length) 
Sets the data source (FileDescriptor) to use. 
void setDataSource(FileDescriptor fd) 
Sets the data source (FileDescriptor) to use. 

残念ながら、それはどのような種類のInputStreamを受け入れません。 Android AppにローカルWebサーバーを開き、コンテンツをリモートでダウンロードし、要求されたデータを任意のリスニングソケットに出力する古いNPRプロキシコードを使用する例がありますが、コードは2年以上経過していてもまだ標準として使用されていますこのタスクを達成するために(たとえ多くの人が吃音問題などがあると報告しても)。

私はMediaPlayerクラスを調べて、この動作を可能にするために拡張したかったのですが、多くの実装はネイティブコードで行われています。 (もしそうなら、私はそれに触れたくない!:))。

したがって、データを破棄せずに、リモートサーバーから受信オーディオデータ(MP3またはOGG)を同時にストリーミングしてストリーミングする最良の方法は何ですか?好ましくはAndroid 2.2以上のバージョンがありますが、使用可能なAPIの入力は高く評価されます。

答えて

1

ローカルプロキシを構築することが最善の策です。私はNPRの例を見ていないが、Nagaを使って同様のことをしている。私の答えhereを参照してください。

関連する問題