The Media Kit Table of Contents | The Media Kit Index |
この節では、クラス中に含まれていないMedia Kitの関数を列挙します。
Declared in: be/media/MediaDefs.h
|
もしformat1のフォーマットのメディアデータをmedia_format format2を扱うことのできるconsumerに送り込むことができなら、trueを返します。そうでなければfalseを返します。
Declared in: be/media/MediaDefs.h
|
もし使用できる全てのファイルフォーマットを検索する必要があるなら、そうするためにこの関数を使用することができます。1を格納したint32型の変数のポインタをcookieに与え、infoにmedia_file_format構造体のポインタを入れて、get_next_file_format()を呼び出して下さい。infoに、使用できる最初のファイルフォーマットに関する情報が収められているでしょう。
あなたは、スキャンするファイルがそれ以上ないことを示すB_BAD_INDEXが返されるまで、get_next_file_format()を繰り返して呼び出すことができます。
下記の部分的なコードは、全てのファイルフォーマットのリストをダンプします。そのリストには、それぞれのファイルフォーマットがサポートするオーディオ及びビデオのcodec全てが含まれています。
void dump_info(void) { int32 cookie = 0, cookie2; media_format format, outfmt; media_file_format mfi; media_codec_info mci; while(get_next_file_format(&cookie, &mfi) == B_OK) { printf("%s (%s, id %d)n", mfi.pretty_name, mfi.short_name, mfi.id); cookie2 = 0; memset(&format, 0, sizeof(format)); format.type = B_MEDIA_RAW_VIDEO; format.u.raw_video.last_active = (uint32) (320 - 1); format.u.raw_video.orientation = B_VIDEO_TOP_LEFT_RIGHT; format.u.raw_video.pixel_width_aspect = 1; format.u.raw_video.pixel_height_aspect = 3; format.u.raw_video.display.format = B_RGB32; format.u.raw_video.display.line_width = (int32) 320; format.u.raw_video.display.line_count = (int32) 240; format.u.raw_video.display.bytes_per_row = 4 * 320; printf(" Video Encoders:n"); while (get_next_encoder(&cookie2, &mfi, &format, &outfmt, &mci) == B_OK) { printf(" %s / %s (%d)n", mci.pretty_name, mci.short_name, mci.id); } cookie2 = 0; format.type = B_MEDIA_RAW_AUDIO; format.u.raw_audio.format = media_raw_audio_format::B_AUDIO_UCHAR; format.u.raw_audio.channel_count = 1; printf(" Audio Encoders:n"); while (get_next_encoder(&cookie2, &mfi, &format, &outfmt, &mci) == B_OK) { printf(" %s / %s (%d)n", mci.pretty_name, mci.short_name, mci.id); } } }
RETURN CODES
B_OK. フォーマットが返された。
Declared in: be/media/MediaDefs.h
|
launch_media_server()は、Media Server(及び古いAudio Server)を起動します。これは、Media Serverを使用する必要があるのに、それが動作していないことに気が付いた時に使用することができます。
shutdown_media_server()は、Media Server(及び古いAudio Server)を終了します。もし終了処理の追跡を可能にしたいなら、progressに関数のポインタを指定して下さい。この関数は入力として、どの程度終了処理が進行しているかを示す整数値stage(100で終了動作の完了を意味する)、何が進行しているかを記述するテスト文字列のmessage、そしてあなたがshutdown_media_server()で入力として指定したものと同じcookieを受け取ります。
timeoutに到達すると、終了処理は中止されます。
Declared in: be/media/MediaDefs.h
|
imageを指定することで、この関数はリアルタイムメディアのためにimageを準備します。flagsは、imageが扱うメディアタイプを示します。これはBMediaRoster::SetRealtimeFlags()関数によって(またはそれを呼び出すMedia preferenceアプリケーションによって)指定されたリアルタイムフラグと一致していなければなりません。もしフラグが一致していなければ、B_MEDIA_REALTIME_DISABLEDが返されます。
RETURN CODES
B_OK. リアルタイムメディアのために、imageの準備ができている。
Declared in: be/media/MediaDefs.h
|
指定されたthreadをリアルタイムメディアのために準備します。引数stackUsedは、メモリにロックされるスタックの量を指定します。あなたのスレッドが実際に領域確保された256kBのスタック全体を使用することは非常に問題があるため、メモリにロックされるスタックの量の上限を示すことで、価値のあるシステムリソースを保護することができます。もしスタック全体をロックする必要があるなら、0を渡して下さい。
引数flagsは、スレッドが扱うことのできるメディアのタイプを示します。
RETURN CODES
B_OK. imageは、リアルタイムメディアに対して準備ができている。
Derived from: be/media/PlaySound.h
|
play_soundは、soundRefパラメータのポインタが示すentry_refによって指定される音声ファイルを演奏します。引数willMix及びwillWaitは、この関数が他の音声と関連してどう振る舞うかを決定するために使用されます。
willMixをTRUEに設定しても、あなたの音声が直ちに演奏されるとは限りません。もし音声再生のリソースが他のプロセスから排他的なアクセスを要求されていれば、ミックスを望んでいたとしてもブロックされます。
引数backgroundがTRUEであれば、この関数は音声を演奏するためのスレッドを生成します。この場合、関数は直ちに返ります。もしbackgroundがFALSEであれば、音声は同期的に演奏され、play_sound()は音声の演奏が完了するまで返らないでしょう。
返されたsound_handleの値は、再生されている音声を表現するトークンであり、バックグラウンドで演奏されている場合のみ有効です。このトークンは、その後に呼び出されるstop_sound()またはwait_for_sound()に使用されます。もしentry_refがファイルを表現していないか、またはどんな理由であれ音声が再生できなければ、play_sound()は負の整数を返します。
Derived from: be/media/PlaySound.h
|
stop_sound()はhandleが指定する音声の再生を停止します。handleは、以前にplay_sound()を呼び出した際に返った値です。戻り値は無視しても構いません。
Declared in: be/media/MediaDefs.h
|
outBufferによって指定されるバッファを、指定されたformatを記述する文字列で満たします。バッファの大きさは、引数bufferSizeによって指定されます。その文字列は多分見事とはいえないでしょうが、フォーマットに関する興味ある情報の種類全てをリストにするでしょう。
この関数は、もし記述が返されたらtrueを返し、そうでなければfalseの結果となります。
Derived from: be/media/PlaySound.h
|
handleによって指定される音声の演奏が完了するまで、呼び出したスレッドをブロックします。handleの値は、以前のplay_sound()の呼び出しによって返されたものです。wait_for_sound()は、現在のところ常にB_OKを返します。
The Media Kit Table of Contents | The Media Kit Index |
Copyright © 2000 Be, Inc. All rights reserved..