2012-01-30 6 views
0

私はmp3を再生し、非常にうまくやっているプレーヤーを作っています(安全で安定したプレーヤー)。また、いくつかのラジオ局のラジオmp3ストリームを再生することができます。 mp3ストリームの「問題」は、フラッシュでmp3ストリームであることを検出する方法がわかりません(インターネットやAdobeのサイトでは見つかりません)。また、私はこれらのストリームをバッファリングする最良の方法がわからない。mp3ファイルがフラッシュでmp3ストリームであるかどうかを検出する(アクションスクリプト3、AS3)

とにかく、私は、それがストリームであることを決定するための複雑な検出方法を、getBytesLoaded()sound.lengthを(長い)期間にわたって変化させることによって決定しました。これは、ストリーム/ファイルが完了している間待機しないようにプレーヤーに指示するか、ファイルが壊れているときにファイルをスキップするために必要です。この検出方法の問題は、低速接続または高速接続(いずれも副作用があります)です。

たとえば、低速接続の場合、検出方法はファイルがストリームであると判断し、高速接続(またはChromeよりも高速にプリロードするChrome)の場合に失敗します。再生がスキップされ、次のファイルが開始されます。

これは説明するのは簡単ではありませんが、主な質問は次のとおりです。ストリームの先頭(開いた後)でmp3ストリームであることを確認/検出できるので、 -it-a-file-or-stream-test '?

今日は私の悪い英語の申し訳ありませんが、私はこれを修正する必要があります。これに安定した解決策を知っている人はいますか?私はすでにヘッダールックアップを試みましたが、それに頼ることはできません(あまりにも多くの差異のサーバーヘッダーが見つかりました)。

+0

なぜ、何 - コディー・グレーが私のテキストを編集 – Codebeat

答えて

0

申し訳ありませんが、MP3ファイルとMP3ストリームの間に違いがないため、その方法はありません。まったく同じデータです。ただし、ファイルディスクリプタや送信するデータのサイズがわかっていることをプレーヤーに知らせる別のプログラムを用意した場合、そのレスポンスをファイルのように扱うことができます。

+0

ありがとう、ありがとう。 Flash AS3はいくつかの面で優れていますが、それはうまくいきます。単純な作業を行うためにコードを割り当てる必要があります。とにかく、ストリームに拡張子が.astrm(改変あり)のファイル名を付け、元のストリームにリダイレクトすることで解決しました。プレーヤーが知っているファイル拡張子を確認することによって/それがストリームであると仮定します。理想的なソリューションではありませんが、今のところうまくいきます。誰にもこれに対するより良い解決策がありますか? – Codebeat

関連する問題