0

ライブインターネットオーディオストリームをデコードしてBackgroundAudioPlayerに渡すためのMediaStreamSourceを作成しました。これは、デバイスで非常にうまく機能するようになりました。ただし、ここで、何らかの形式のバッファリング制御を実装したいと思います。現在、すべてがWLANでうまく機能しますが、モバイルオペレーターのネットワークを介したライブの状況では、ストリームの一部が大幅に削減されるのではないかと心配しています。私が知りたいのは、バッファリングを実装するための最良の方法について誰かがアドバイスを持っているかどうかです。

  • バックグラウンドオーディオプレーヤー自体は、再生を開始する前に何らかのバッファを構築しますか?その場合、必要に応じてこのサイズを増やすことができますか?

  • サンプリング中にバッファリングを支援するために設定できるものはありますか、またはネットワークからストリームを取得し、サンプリングの前にこれにかなりの予備を構築するときに、一種のストレージバッファを実装する必要がありますか?

この問題に対して他の人はどのようなアプローチを取っていますか?ありがとう、ブライアン

4

2 に答える 2

1

私が見たこれに対する 1 つのアプローチは、ストリームを管理する 2 つのプロセスを持つことです。1 つ目は、ストリームを取得し、一連の連番ファイルを分離ストレージに書き込みます。2 つ目は、ファイルを読み取って再生します。
これは非常に単純化された説明ですが、理解していただければ幸いです。

于 2012-02-02T01:50:51.537 に答える
0

MediaStreamSource の使用がこれにどのように影響するかはわかりませんが、リモート MP3 ファイルまたは MP3 ライブ ラジオ ストリームから直接ストリーミングする単純なバックグラウンド オーディオ プレーヤー エージェントの経験から:

  • プレーヤーは、トラックの再生を開始する前に、サーバーから受信したデータのバッファーを作成します。
  • このバッファのサイズや、そのバッファを埋めるのにかかる時間を制御することはできません (場合によっては、バッファリングに 1 分以上かかることがあります)。
  • 接続が失われたり、帯域幅が非常に低くなったりしてストリームの開始後にバッファが空になった場合に再生が開始されると、プレーヤーはオーディオを再バッファリングしようとしないため、オーディオが完全に失われたり、カットインまたはカットアウトしたりする可能性があります。
  • あなたもそれを制御することはできません。

Matt の回答の提案を実装すると、バッファリングを制御し、ダウンロードと再生をきちんと分離できるようになるため、これが解決されます。

于 2012-02-02T20:00:21.860 に答える