2009-03-03 55 views
0

私はこの問題を今何ヶ月間も舐めようとしてきました... Flash 9では、ストリーミングMP3ファイルを読み込み、トラックの長さを計算しようとしています。私はそれを行うことはできますが、mp3のチャンネルがモノラルの場合、時間は元のトラックの長さの2倍です。どのように私はこれを把握しましたか?さて、私はWindowsのサウンドレコーダーに録音してプレイヤーをテストしましたが、幸運にも、MP3をステレオに録音するのを忘れていました。Flash 9:ストリーミングトラックがモノであるかどうかを調べるにはどうすればよいですか?

Flashでは、読み込んだバイト数、合計バイト数、再生位置、使用すると思われる数式を使用して、さまざまな方法で長さを計算してみました。数学は大丈夫です。問題は、Flashがmp3を読み込むときに、ファイルがステレオであると自動的に判断することです。したがって、データをロードすると、あるサイズで1つのチャンネルを認識してから、ステレオで2倍になるため、バイト数が倍増します。これにより、正確な数式を使用してもトラックの長さが倍になるロード・サイズの誤った値が生成されます。そのため、私たちが使用する通常の式ではモノが機能しません。

これに対処するには、ファイルがモノラルかステレオかを判断する方法が必要です。 ID3データも間違った値を返します。私はすでにsoundTransform.leftToLeft、soundTransform.leftToRight、soundTransform.rightToLeft、およびsoundTransform.rightToRight(ステレオサウンドの値を返します)を使用して手動で決定しようとしました。

Flashにファイルのオーディオチャンネルを教えてもらう方法がわかりません。私が何かを見落としているだけで、助けやトラブルシューティングのヒントは、私がすでに試してみたかどうかにかかわらず、大歓迎です。

+0

問題を修正しました。何らかの理由で、Flashは1つのチャネルで検出されたバイト数のサイズを2倍にしました(ステレオとみなされるため)。ロードが完了した後、最終サイズを再計算しなければなりませんでした。私に尋ねないでください。一度それをやっても2倍に戻りましたが、それを2回実行すると動作します。 –

答えて

0

ID3が正しいですか?
ステレオ/モノの問題ではなく、ヘッダーが壊れているため、間違った長さを報告するmp3がいくつかあります。

+0

定期的に録音されたmp3の場合、タグは正しいですが、これはサウンドレコーダーで作成されているため、ID3タグはありません。だから、条件文をスキップします。私はそれを言っておくべきだった。 –

関連する問題