The Media Kit Table of Contents | The Media Kit Index |
Derived from: none
Declared in: be/media/MediaFile.h
Library: libmedia.so
Allocation: Constructor only
BMediaFileクラスは、メディアデータを含んだファイルを表現します。既存のメディアファイルへのentry_refからBMediaFileのインスタンスを作成すると、それはファイルを嗅ぎまわってそのファイルにアクセスする際に使用する適切なcodecを見つけだします。
既存のメディアファイルを読み込むためには、ファイルのトラックに対するBMediaTrackオブジェクトのインスタンスを作成するためにGetTrack()を呼び出します。それらはファイルからメディアデータをデコードするために、順番に使用されます。
ファイルにデータを書込むことも出来ます。この場合、entry_ref及びファイルに書込もうと企図するメディアデータのフォーマットを記述するmedia_file_formatによって特定されるオブジェクトをコンストラクトします。その後、ファイルに書込もうとする個々のトラックを生成するためにCreateTrack()を呼び出します。それぞれのトラックが作成されたら(しかしそれらは中身が空ですが)、ディスクにファイルのヘッダを書込むためにCommitHeader()を呼び出し、トラックへ実際のメディアデータを書込むためにBMediaTrackを使用することが出来ます。
書き込みが終了したらCloseFile()を呼び出して下さい(ファイルを読み込む時は必要ありません)。
メディアファイルの読み書きをBMediaFileを用いて行う方法は、"Reading and Writing Media Files"をご覧下さい。
|
|
コンストラクタの最初の4つの形式は、refまたはsourceによって指定されたファイルを読み込むことでBMediaFileを初期化します。これが終わると、ファイルが無事に探索されたことを確認するためにInitCheck()を必ず呼び出して下さい。探索がうまくいっていれば、BMediaFileオブジェクトはファイルのデータを読み込むために必要なBMediaTrackオブジェクトのインスタンスを生成するために使用できます。
次の2つの形式は、メディアファイルへの書き込みの準備をBMediaFileオブジェクトに行わせます。ファイルはrefまたはdestinationによって指定されます。書込まれるファイルのフォーマットはfileFormatによって指定されます。
flagsは、下記の値の組み合わせです。
Constant | Description |
---|---|
B_MEDIA_FILE_REPLACE_MODE | 書き込みの際には、存在する全てのメディアファイルを置き換える。 |
B_MEDIA_FILE_NO_READ_AHEAD | ファイル中では前方に向かって読み進まない。 |
B_MEDIA_FILE_UNBUFFERED | 読み込み量をより少なくする。これは大きな出力バッファを満たすためのエクストラクタを待つことなしに低ビットレートのファイルをストリーミングする場合に便利である。 |
B_MEDIA_FILE_BIG_BUFFERS | 大きなバッファを使用する。 |
|
デストラクタ。
|
ファイルにユーザが定義したデータのチャンク(塊)を(もしそれがエンコーダにサポートされていれば)書込みます。引数typeはチャンクの型を示し、dataは書込まれるデータのポインタを指し、sizeはファイルに書込むデータの大きさを示します。
|
RETURN CODES
B_OK. エラーなし。
|
AddCopyright()は、ファイルの著作権情報をdataによって指定される文字列に設定します。既存の情報は全て置き換えられます。文字列はコピーされ、もとの文字列はあなたが所有します。
Copyright()は、メディアファイルの著作権情報を返すか、それが一つもなければNULLを返します。この文字列はBMediaFileに属しますので、削除または変更を行わないで下さい。
|
RETURN CODES
B_OK. エラーなし。(AddCopyright()のみ)
|
全てのトラックに全てのメディアデータが書込まれたら、BMediaFileオブジェクトがファイルを整理し、トラックの書き込みを終了できるようにCloseFile()を呼ぶ必要があります。
RETURN CODES
B_OK. エラーなし。
|
ファイルに新しいトラックを追加し終わったら、BMediaFileのファイルのヘッダをセットアップするためにCommitHeader()を呼び出す必要があります。これはファイルの書き込み処理を最適化する手助けとなります。
RETURN CODES
B_OK. エラーなし。
|
メディアファイル中のトラック数を返します。返値は、初期化が失敗した場合には定義されません。
|
ファイル中に新しいトラックを作成し、それを参照するBMediaTrackオブジェクトを返します。トラックは、mediaFormatによって指定されたメディアフォーマットを使用するように設定され、codecInfoによって記述されたcodecを使用して書込まれます。トラックへの書き込みにはBMediaTrack::WriteFrames()のみ使用できます。
引数codecInfoなしに2番目の形式のコンストラクタを使用するなら、トラックは生(raw)のメディアデータで書込まれます。トラックへの書き込みにはBMediaTrack::WriteChunk()のみ使用できます。
mediaFormatは書き込み関数に渡すバッファのフォーマットを示し、codecInfoはトラックへの書き込みデータをエンコードするのに使用するcodecを指定します。
|
新しいメディアファイルを書込む際には、なんらかのメディアデータを書込む前に、全てのトラックを作成しておきます。全てのトラックが作成されていれば、ディスクへのヘッダを書込むために必ずCommitHeader()を呼び出して下さい。これはヘッダの大きさがファイルに収められたトラックの数に強く依存するため、必要となります。そして一旦トラックにメディアデータを書き込みはじめたら、ヘッダの大きさを変更することは困難(及び無意味)となります。
もし新しいトラックを作成している間にエラーが生じたら、NULLが返されます。
|
指定されたmedia_file_format構造体をBMediaFileオブジェクトが参照しているファイルのファイルフォーマットを記述する情報で満たします。
RETURN CODES
B_OK. エラーなし。
|
ファイルフォーマットのパラメータを調整するコントロールを含んだBViewを返します。
|
コンストラクタの結果(result)コードを返します。BMediaFileを使用する前ではなく、インスタンスを生成した後にいつもこの関数を呼び出します。
RETURN CODES
B_OK. エラーなし。
|
ReleaseTrack()は、指定されたtrackによって使用されるリソースを開放します。そうすることで、アプリケーションのメモリ使用量を削減できます。もし使用中の全てのトラックを開放したければ、ReleaseAllTracks()が使用できます。
一旦開放されると、トラックはTrackAt()が使用されるまで使用できません。
BMediaFileが適切に初期化されなかったか、あるいはindexが無効であれば、NULLが返されます。
RETURN CODES
B_OK. エラーなし。
|
SetParameterValue()は、idで指定されるパラメータの値をvalueポインタで指定されるデータに設定します。このデータの長さはsizeバイトです。
GetParameterValue()は、valueに指定されたパラメータの値を入れ、引数sizeにバイト単位の値の大きさを入れて返します。
RETURN CODES
B_OK. エラーなし。
|
indexで指定されたトラックを参照するBMediaTrackを返します。indexは、0とCountTracks() - 1の間の値を取らなければなりません。
もしBMediaFileが適切に初期化されていないか、indexが無効であれば、NULLが返されます。
|
|
ファイルフォーマットのパラメータを設定するために利用できるBParameterWebを返します。もしcodecがユーザー設定をサポートしていなければ、NULLを返します。
Declared in: be/media/MediaFile.h
Constant | Description |
---|---|
B_MEDIA_FILE_REPLACE_MODE | 書き込みの際には、存在する全てのメディアファイルを置き換える。 |
B_MEDIA_FILE_NO_READ_AHEAD | ファイル中では、前方に向かって読み進まない。 |
B_MEDIA_FILE_UNBUFFERED | 読み込み量をより少なくする。これは大きな出力バッファを満たすためのエクストラクタを待つことなしに低ビットレートのファイルをストリーミングする場合に便利である。 |
B_MEDIA_FILE_BIG_BUFFERS | 大きなバッファを使用する。 |
これらのフラグは、コンストラクタの振る舞いを制御します。
The Media Kit Table of Contents | The Media Kit Index |
Copyright © 2000 Be, Inc. All rights reserved..