The Media Kit Table of Contents     The Media Kit Index

Global Functions

 この節では、クラス中に含まれていないMedia Kitの関数を列挙します。


Global Functions


format_is_compatible()

Declared in: be/media/MediaDefs.h
                                                         
  

bool format_is_compatible(const media_format &format1,
      const media_format &format2)

 もしformat1のフォーマットのメディアデータをmedia_format format2を扱うことのできるconsumerに送り込むことができなら、trueを返します。そうでなければfalseを返します。


get_next_file_format()

Declared in: be/media/MediaDefs.h
                                                         
  

status_t get_next_file_format(int32 *cookie, media_file_format *info)

 もし使用できる全てのファイルフォーマットを検索する必要があるなら、そうするためにこの関数を使用することができます。1を格納したint32型の変数のポインタをcookieに与え、infomedia_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. フォーマットが返された。

  • B_BAD_VALUE. 無効なcookieが指定された。

  • B_BAD_INDEX. それ以上ファイルフォーマットがないか、またはcookieが無効である。


    launch_media_server() , shutdown_media_server()

    Declared in: be/media/MediaDefs.h
                                                             
      

    status_t launch_media_server(uint32 flags = 0)

    status_t shutdown_media_server(bigtime_t timeout = B_INFINITE_TIMEOUT,
          bool (*progress)(int stage, const char *message, void *cookie) = NULL,
          void *cookie = NULL)

     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に到達すると、終了処理は中止されます。


    media_realtime_init_image()

    Declared in: be/media/MediaDefs.h
                                                             
      

    status_t media_realtime_init_image(image_id image, uint32 flags)

     imageを指定することで、この関数はリアルタイムメディアのためにimageを準備します。flagsは、imageが扱うメディアタイプを示します。これはBMediaRoster::SetRealtimeFlags()関数によって(またはそれを呼び出すMedia preferenceアプリケーションによって)指定されたリアルタイムフラグと一致していなければなりません。もしフラグが一致していなければ、B_MEDIA_REALTIME_DISABLEDが返されます。

    RETURN CODES

    B_OK. リアルタイムメディアのために、imageの準備ができている。


    media_realtime_init_thread()

    Declared in: be/media/MediaDefs.h
                                                             
      

    status_t media_realtime_init_thread(thread_id thread, size_t stackUsed, uint32 flags)

     指定されたthreadをリアルタイムメディアのために準備します。引数stackUsedは、メモリにロックされるスタックの量を指定します。あなたのスレッドが実際に領域確保された256kBのスタック全体を使用することは非常に問題があるため、メモリにロックされるスタックの量の上限を示すことで、価値のあるシステムリソースを保護することができます。もしスタック全体をロックする必要があるなら、0を渡して下さい。

     引数flagsは、スレッドが扱うことのできるメディアのタイプを示します。

    RETURN CODES

    B_OK. imageは、リアルタイムメディアに対して準備ができている。


    play_sound()

    Derived from: be/media/PlaySound.h
                                                             
      

    sound_handle play_sound(const entry_ref *soundRef,
          bool willMix,
          bool willWait,
          bool background)

     play_soundは、soundRefパラメータのポインタが示すentry_refによって指定される音声ファイルを演奏します。引数willMix及びwillWaitは、この関数が他の音声と関連してどう振る舞うかを決定するために使用されます。

     willMixTRUEに設定しても、あなたの音声が直ちに演奏されるとは限りません。もし音声再生のリソースが他のプロセスから排他的なアクセスを要求されていれば、ミックスを望んでいたとしてもブロックされます。

     引数backgroundTRUEであれば、この関数は音声を演奏するためのスレッドを生成します。この場合、関数は直ちに返ります。もしbackgroundFALSEであれば、音声は同期的に演奏され、play_sound()は音声の演奏が完了するまで返らないでしょう。

     返されたsound_handleの値は、再生されている音声を表現するトークンであり、バックグラウンドで演奏されている場合のみ有効です。このトークンは、その後に呼び出されるstop_sound()またはwait_for_sound()に使用されます。もしentry_refがファイルを表現していないか、またはどんな理由であれ音声が再生できなければ、play_sound()は負の整数を返します。


    shutdown_media_server() see launch_media_server()


    stop_sound()

    Derived from: be/media/PlaySound.h
                                                             
      

    status_t stop_sound(sound_handle handle)

     stop_sound()handleが指定する音声の再生を停止します。handleは、以前にplay_sound()を呼び出した際に返った値です。戻り値は無視しても構いません。


    string_for_format()

    Declared in: be/media/MediaDefs.h
                                                             
      

    bool string_for_format(const media_format &format,
          char *outBuffer,
          size_t bufferSize)

     outBufferによって指定されるバッファを、指定されたformatを記述する文字列で満たします。バッファの大きさは、引数bufferSizeによって指定されます。その文字列は多分見事とはいえないでしょうが、フォーマットに関する興味ある情報の種類全てをリストにするでしょう。

     この関数は、もし記述が返されたらtrueを返し、そうでなければfalseの結果となります。


    wait_for_sound()

    Derived from: be/media/PlaySound.h
                                                             
      

    status_t wait_for_sound(sound_handle handle)

     handleによって指定される音声の演奏が完了するまで、呼び出したスレッドをブロックします。handleの値は、以前のplay_sound()の呼び出しによって返されたものです。wait_for_sound()は、現在のところ常にB_OKを返します。


    The Media Kit Table of Contents     The Media Kit Index


    The Be Book,
    ...in lovely HTML...
    for BeOS Release 5.

    Copyright © 2000 Be, Inc. All rights reserved..