このモジュールはEA IFF 85チャンクを使用しているファイルの読み込みのため のインターフェースを提供します。 19.1 このフォーマットは少なくとも、Audio Interchange File Format (AIFF/AIFF-C) とReal Media File Format (RMFF)で使われています。 WAVEオーディオファイルフォーマットも厳密に対応しているので、このモジュー ルで読み込みできます。 チャンクは以下の構造を持っています:
Offset値 | 長さ | 内容 |
---|---|---|
0 | 4 | チャンクID |
4 | 4 | big-endianで示したチャンクのサイズで、ヘッダは含みませ ん |
8 | n | バイトデータで、nはこれより先のフィールドのサイズ |
8 + n | 0 or 1 | nが奇数ならチャンクの整頓のために埋められるバイト |
IDはチャンクの種類を識別する4バイトの文字列です。
サイズフィールド(big-endianでエンコードされた32ビット値)は、8バイトの ヘッダを含まないチャンクデータのサイズを示します。
普通、IFFタイプのファイルは1個かそれ以上のチャンクからなります。 このモジュールで定義されるChunkクラスの使い方として提案している のは、それぞれのチャンクの始めにインスタンスを作り、終わりに達するまでそ のインスタンスから読み取り、その後で新しいインスタンスを作るということで す。 ファイルの終わりで新しいインスタンスを作ろうとすると、 EOFErrorの例外が発生して失敗します。
file[, align, bigendian, inclheader]) |
省略可能な引数alignがtrueなら、チャンクデータが偶数個で2バイトごと に整頓されていると想定します。 もしalignがfalseなら、チャンクデータが奇数個になっていると想定しま す。 デフォルト値はtrueです。
もし省略可能な引数bigendianがfalseなら、チャンクサイズは little-endianであると想定します。 この引数の設定はWAVEオーディオファイルで必要です。デフォルト値はtrueで す。
もし省略可能な引数inclheaderがtrueなら、チャンクのヘッダから得られ るサイズはヘッダのサイズを含んでいると想定します。 デフォルト値はfalseです。
Chunkオブジェクトには以下のメソッドが定義されています:
) |
) |
) |
残りの以下のメソッドは、close()メソッドを呼び出した後に呼び出す と例外IOErrorを発生します。
) |
False
を返します。
pos[, whence]) |
0
(ファイルの絶対位
置)です;他に1
(現在位置から相対的にシークします)と2
(ファイルの末尾から相対的にシークします)の値を取ります。
何も値は返しません。
もし元のファイルがシークに対応していなければ、前方へのシークのみが可能で
す。
) |
[size]) |
) |
''
が返されます。
もしチャンクの内容に興味がないなら、このメソッドを呼び出してファイルポイ
ンタを次のチャンクの始めに設定します。