0

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

さて、Flash では、ロードされたバイト数、合計バイト数、再生位置、および考えられるすべての数式を使用して、さまざまな方法でデュレーションを計算してみました。数学は大丈夫です。問題は、Flash が mp3 をロードするときに、ファイルがステレオであると自動的に想定することです。そのため、データをロードするとき、特定のサイズで 1 つのチャネルを認識し、ステレオ用に 2 倍にするため、データが持っていると考えられるバイト数を 2 倍にします。これにより、負荷サイズの誤った値が生成されますが、正しい計算では、トラックの長さが 2 倍になります。そのため、モノは、私たちが使用する通常の式では機能しません。

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

ファイルに含まれるオーディオ チャンネルを Flash に正しく通知させる方法がわかりません。私が何かを見落としていることを願っています。すでに試したかどうかに関係なく、ヘルプやトラブルシューティングのヒントをいただければ幸いです。

4

1 に答える 1

0

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

于 2009-03-03T09:41:17.960 に答える