Skip to content

Latest commit

 

History

History
43 lines (29 loc) · 2.66 KB

readme.md

File metadata and controls

43 lines (29 loc) · 2.66 KB

MP3 デコーダー

更新日: 2023年5月15日

MP3フレームをデコードするためのJavaScriptクラス。

リファレンス

import MP3 from "mp3/decode";

constructorは引数を取りません。

const mp3 = new MP3;

closeメソッドはすべてのリソースを解放します。MP3デコーダーはメモリを予約するため、使用後はメモリを解放するために閉じることが重要です。

mp3.close();

decodeメソッドは単一のMP3フレームをデコードします。出力は常にモノラルです(必要に応じて簡単に変更できます)。

mp3.decode(inputFrame, outputBuffer);

decodeメソッドは使用されたバイト数を返すか、フレームをデコードできなかった場合は0を返します。デコードされたサンプル数は出力バッファのsamplesプロパティとして設定されます。samplesは通常MP3では1152ですが、ビットストリームでは他の小さい値も含まれることがあります。

バッファをスキャンしてMP3フレームの開始位置を見つけ、ビットレート、サンプルレート、チャンネル数などのヘッダー情報を抽出する静的なscanメソッドがあります。

let found = MP3.scan(buffer, start, end[, info]);

フレームが見つからなかった場合、戻り値は undefined です。見つかった場合はオブジェクトが返されます。このオブジェクトには、入力バッファ内のフレームのオフセットとサイズを示す positionlength プロパティがあります。length の値は推定値であり、常にフレームのサイズ以上である必要があります。フレームの実際の終了位置を決定するには、decode メソッドの戻り値を使用します。

謝辞

MP3デコーダーはlibmadを使用しており、特にEarle F. Philhower, IIIによるESP8266用に最適化されたものをフォークしています。Moddable SDKではESP8266上での使用を意図していませんが、そのメモリ最適化を受け入れています。使用されているタグは ESP8266Audio リポジトリ の12131e9です。Moddable SDKのビルド環境に合わせた調整を除いて、ソースに変更はありません。この素晴らしい作品を提供してくれたEarleに感謝します。

ライセンス

libmad MP3デコーダーはGPLライセンスを使用しています。このモジュールを商用プロジェクトに組み込む場合は、これを考慮してください。