前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0
SFBMediaUtil
IMediaUtil インターフェイスのラッパークラスです。
#include <SFBMediaUtil.h.hpp>
class SFBMediaUtil : public SFBQuery;
SFMTYPEDEFWRAPPER(SFBMediaUtil)

継承図

SFBMediaUtil クラスの継承図

協調図

SFBMediaUtil クラスの協調図

バージョン

このインターフェイスは、BREW 2.1 以降でのみ使用可能です。

参照

BREW API IMediaUtil

メンバ

パブリック関数
SFCError CreateMedia( AEEMediaData* data , SFBMediaSmpPtr media )
与えられたメディアデータを解析し、 SFBMedia 派生オブジェクトを作成します。
SFCError EncodeJPEG( AEEMediaEncodeResult* result , AEEMediaEncodeInfo* spec , AEECallback* callback )
JPEG 形式のメディアをエンコードします。
SFCError EncodeMedia( AEEMediaEncodeResult* result , AEECLSID clsidDest , AEEMediaEncodeInfo* spec , AEECallback* callback )
指定された形式の新しいメディアをエンコードします。
SFCError EncodePMD( AEEMediaEncodeResult* result , AEEMediaEncodeInfo* spec , AEECallback* callback )
PMD 形式のメディアをエンコードします。
static
SFBMediaUtilSmp
NewInstance( Void )
SFBMediaUtil クラスのインスタンスを取得します。
SFCError QueryInterface( AEECLSID clsid , VoidHandle handle ) (SFBQuery から継承)
QueryInterface( AEECLSID clsid , SFBBaseSmpPtr handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFBBaseSmp QueryInterface( AEECLSID clsid ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
Void Self( AEECLSID clsidReq , SFBQuerySmpPtr clone , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インタフェースで実装する際に使用します。
SFBQuerySmp Self( AEECLSID clsidReq , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インタフェースで実装する際に使用します。

SFBMediaUtil::CreateMedia
与えられたメディアデータを解析し、 SFBMedia 派生オブジェクトを作成します。
[ public ]
SFCError CreateMedia(
    AEEMediaData* data     // メディアデータ
    SFBMediaSmpPtr media   // SFBMedia 派生オブジェクトを受け取るポインタ
);

使用例

SFBMediaUtil::CreateMedia() を使用して SFBMedia 派生クラスのオブジェクトを作成し、 サウンドを再生します。

#include <SophiaFramework.hpp>
#include "MediaSample.bid"

//
//  MediaSample アプリケーション クラス
//
SFMTYPEDEFCLASS(MediaSample)
class MediaSample : public SFRApplication
{
private:
    SFBMediaSmp             _media;
    AEEMediaData            _mdata;

public:
    static SFCInvokerPtr ructorConst() { return new MediaSample; }

private:
    MediaSample(Void);

    // コピー操作を防ぐために隠蔽します。
    MediaSample(MediaSampleConstRef);
    MediaSampleConstRef operator = (ConstMediaSampleRef);

    // アプリ開始ハンドラ
    Void OnAppStart(Void);
    static Bool OnAppStartEntry(SFXEventConstRef event, VoidPtr data)
    { MediaSamplePtr(data)->OnAppStart(); return true; }

    // アプリ終了ハンドラ
    Void OnAppStop(Void);
    static Bool OnAppStopEntry(SFXEventConstRef event, VoidPtr data)
    { MediaSamplePtr(data)->OnAppStop(); return true; }

};

//  BREW アプリケーションの起動コードです。
SFCInvokerSPP SFCApplet::Boot(AEECLSID id)
{
    if (id == AEECLSID_MEDIASAMPLE)
    {
        return MediaSample::ructorConst;
    }
    else
    {
        return null;
    }
}

//  コンストラクタ
MediaSample::MediaSample(Void)
{
    // イベント ハンドラを登録します。
    RegisterHandler(SFEVT_APP_START, HANDLER_BEFORE, OnAppStartEntry, this);
    RegisterHandler(SFEVT_APP_STOP, HANDLER_BEFORE, OnAppStopEntry, this);

    // メディア データを初期化します。
    _mdata.pData = null;
}

//  アプリ開始ハンドラ
Void MediaSample::OnAppStart(Void)
{
    // SFBMediaUtil オブジェクトを使用してメディアを再生します。
    SFBShellSmp         shell    = SFBShell::GetInstance();
    SFBMediaUtilSmp     mutil    = SFBMediaUtil::NewInstance();
    const char*         filename = "sample.mid";

    if (mutil != null) {
        // メディアデータを設定します。
        _mdata.clsData  = MMD_FILE_NAME;
        _mdata.pData    = STRDUP(filename);
        _mdata.dwSize   = 0;

        // SFBMedia 派生クラスのオブジェクトを作成します。
        mutil->CreateMedia(&_mdata, &_media);
    }

    if (_media != null) {
        // メディアを再生します。
        _media->Play();
    }

}

//  アプリ終了ハンドラ
Void MediaSample::OnAppStop(Void)
{
    // メディア データを破棄します。
    if (_mdata.pData != null) {
        FREE(_mdata.pData);
    }
}

参照

BREW API IMEDIAUTIL_CreateMedia


SFBMediaUtil::EncodeJPEG
JPEG 形式のメディアをエンコードします。
[ public ]
SFCError EncodeJPEG(
    AEEMediaEncodeResult* result   // エンコードの結果を受け取る領域を指すポインタ
    AEEMediaEncodeInfo* spec       // エンコード情報
    AEECallback* callback          // コールバック関数
);

参照

BREW API IMEDIAUTIL_EncodeJPEG


SFBMediaUtil::EncodeMedia
指定された形式の新しいメディアをエンコードします。
[ public ]
SFCError EncodeMedia(
    AEEMediaEncodeResult* result   // エンコードの結果を受け取る領域を指すポインタ
    AEECLSID clsidDest             // 宛先のエンコードクラス ID
    AEEMediaEncodeInfo* spec       // エンコード情報
    AEECallback* callback          // コールバック関数
);

参照

BREW API IMEDIAUTIL_EncodeMedia


SFBMediaUtil::EncodePMD
PMD 形式のメディアをエンコードします。
[ public ]
SFCError EncodePMD(
    AEEMediaEncodeResult* result   // エンコードの結果を受け取る領域を指すポインタ
    AEEMediaEncodeInfo* spec       // エンコード情報
    AEECallback* callback          // コールバック関数
);

参照

BREW API IMEDIAUTIL_EncodePMD


SFBMediaUtil::NewInstance
SFBMediaUtil クラスのインスタンスを取得します。
[ public, static ]
SFBMediaUtilSmp NewInstance(Void);