0

私の問題は、mp3 フレームの実際のデータを取得することです。このために、私は NAudio を使用して RawData を取得しましたが、RawData プロパティで、ヘッダーとサイド情報を含むフレームのすべてのバイトを返すと思います。

コードを以下に示します。

private void button1_Click(object sender, EventArgs e)
{
    Mp3FileReader reader = new Mp3FileReader("file.mp3");
    Mp3Frame mp3Frame = reader.ReadNextFrame();
    byte [] FrameByteArray =  mp3Frame.RawData;

    BitArray bits = new BitArray(FrameByteArray);
    Console.Write(mp3Frame.RawData.Length);
    foreach (bool b in bits)
    {
        if (b == true)
        {
            Console.Write(" 1");
        }
        else
        {
            Console.Write(" 0");
       }

    }
    reader.Close();
  }

ヘッダーとサイド情報を含むすべてのフレーム データをビット単位で返します。しかし、ヘッダーとサイド情報なしで、すべてのフレームの実際のデータのみが必要です。

誰か助けてくれませんか??

4

1 に答える 1

0

NAudio は MP3 フレームを見つけることができますが、サンプル レートやチャネル モードなどの基本的な情報を特定する以外に、コンテンツのより深いレベルの解析は行いません。

さらに深く探求する必要がある場合は、MP3 フレームの内部構造に慣れる必要があります。特に、次のドキュメントを入手できるかどうかを確認してください。

  • MPEG 1 仕様 (ISO/IEC 11172-3)。
  • MPEG 2 仕様 (ISO/IEC 13818-3)。

codeproject に関するこの記事は、開始するのに適した場所です (下部のリンクをたどってください)。MP3 フレーム形式をより深く理解している C# コードが必要な場合は、NLayerのソース コードを調べることができます。

于 2013-09-18T11:47:25.950 に答える