CRI Sofdec  Last Updated: 2025-03-31 11:58 p
基本的なプログラムの流れ

アプリケーションのムービー再生手順

アプリケーションはライブラリを初期化し、再生ハンドル CriManaPlayerHn を作成したら、ファイル名を指定して再生開始するだけです。
アプリケーションがムービー再生中にやるべきことは、いくつかの関数の定期的呼び出しと、ビデオフレームの取得と表示です。
アプリケーションは「ビデオフレームの表示時刻判定に成功してすぐ表示」という仕組みを作れば、スムーズなムービー再生が実現できます。


  • ムービー再生手順
    最も単純な再生手順は以下のようになります。


  • ムービー情報取得の手順
    再生開始前にビデオの解像度を調べたり、再生するオーディオを選択することも可能です。
    その場合は、いったんムービー情報を取得する手順を踏みます。



ビデオフレームの描画

アプリケーションはムービー再生中、定期的にビデオフレームの取得を試み、取得と時刻判定に成功したら描画します。
アプリケーションは表示タイミングや表示間隔を気にする必要はありません。

取得したビデオフレームは、描画用のフォーマットへ変換/コピーを行ってから描画します。描画用フォーマットを複数から選択することができます。
アプリケーションの描画システムに応じてフォーマットを選択してください。

  • 32bit ARGBテクスチャ
  • ピクセルシェーダー用YUV個別バッファー


Manaプレーヤの状態遷移について

再生ハンドル CriManaPlayerHn (Manaプレーヤ)は状態が定義されており、 criManaPlayer_GetStatus を実行すると現在のプレーヤの状態を知ることが可能です。

プレーヤの状態について
プレーヤの状態 説明
CRIMANAPLAYER_STATUS_STOP 停止中
CRIMANAPLAYER_STATUS_DECHDR ヘッダ解析中
CRIMANAPLAYER_STATUS_WAIT_PREP バッファリング開始停止中
CRIMANAPLAYER_STATUS_PREP 再生準備中
CRIMANAPLAYER_STATUS_READY 再生待機中
CRIMANAPLAYER_STATUS_PLAYING 再生中
CRIMANAPLAYER_STATUS_PLAYEND 再生終了
CRIMANAPLAYER_STATUS_ERROR エラー


criManaPlayer_Create でManaプレーヤを作成した時点では、 CriManaPlayerStatus はSTOP状態です。
実行する関数に応じて以下のようにプレーヤの状態が遷移します。

Manaプレーヤ状態の遷移を図に示すと以下のようになります。



[備考]
再生中に何らかのエラーが発生した場合、プレーヤの状態はERROR状態に遷移します。
また、 criManaPlayer_Stop 関数で再生を停止させた場合には、プレーヤの状態はSTOP状態に遷移します。