13

サーバー経由でオーディオをストリーミングしようとしています。すべての設定が完了しました。スタティック オーディオの録音と再生は正常に機能していますが、オーディオをストリーミングしようとすると、再生側で遅延が発生します。

Google検索を行いましたが、これを行う適切な方法が見つかりませんでした。オーディオ データの送受信に AudioRecord と Audiotrack Android メディア API を使用しています。この遅延を処理する方法を誰か教えてもらえますか?

明確な画像を取得するために、GOOGLE GROUP にコードを追加しました。

私はこのようにして、サーバーを通過するバッファに5つのオーディオデータのチャンクを保持し、5つのデータのチャンクを満たすときに再生し、次の5つのオーディオデータのチャンクを再度取得して、1024バイトまでのように埋めましたのデータ(オーディオトラックに書き込み、再生メソッドが呼び出されます)。これにも遅延があります。他の解決策はありますか??

4

1 に答える 1

2

本当にこれをバッファなしで実行しようとしている場合は、使用している再生ツールがバッファなしで再生しようとしていることを確認してください。遅れないようにするのは難しいでしょう。テレビやラジオなどでは、実際に「生」のものはありません。常に何らかの遅延が発生します。インターネット ストリームでは、常に大量のデータを送信しています。移動する時間以外にも、このすべてのデータは特定の順序で保持する必要があり、エンドユーザーのコンピューターが再生を試みる間、途切れ途切れの再生を望んでいる人はいません。主要なネットワーク用のフラッシュ プレーヤーで、再生処理中にコンピューターに大量のキャッシュ ファイルを保持させたことがありますが、それらのプレーヤーはスキップしたり、バッファリングを待機したりしません。(何かをロードして、数 100 MB の余分なメモリが使用されていることに気付いた場合、おそらく再生中にさらに使用されます。)

VLC を使用すると、非常に小さなバッファ (過去の標準は 30 ~ 60 秒であり、多くのプレイヤーは今でもデフォルトです) を回避できる場合があります。バッファを非常に低く設定できましたが、ストリーム/ビデオの品質が非常に低くなっています。あなたが抱えている大きな問題は、再生がバッファを設定していることであり、再生が60秒のバッファに設定されている場合、サーバー側で何をしてもかまいません...クライアントエンドは、それだけの量になるまで待機しますチャンクの再生を開始します。

于 2012-10-18T17:03:27.553 に答える