この機能を利用すると、ゲーム進行状況に応じて特定分割区間のムービーをプログラマブルに差し替えるといった演出や、 ユーザーが再生したいムービーのプレイリストを隙間なく再生するといった実装が可能です。
通常再生では、再生開始前に
criManaPlayer_SetFile 関数などでムービーのファイルパスを指定していましたが、連結再生時では ファイル要求コールバックを設定します。コールバックを登録すると、実施にファイルを読み込むタイミングでコールバックが呼び出されます。
{
AppObj *app_obj = (AppObj*)obj;
if (app_obj->play_list_idx == app_obj->num_play_list) {
return;
}
app_obj->play_list_idx++;
return;
}
CriManaPlayerObj * CriManaPlayerHn
プレーヤーハンドル
Definition: cri_mana.h:841
ファイル要求コールバックの中で、
criManaPlayer_SetFile 関数や
criManaPlayer_SetData 関数で次のムービーを指定すると、 自動的にムービーが連結されます。コールバック内で次のムービーを指定しなければ自動的にPLAYENDになります。 なお、プレイリストの管理はアプリケーション側で行って下さい。
frminf = &app_obj->frame_info;
concat_count = frminf->cnt_concatenated_movie;
criFwPrt_DrawText(x, y, "Concat Count : %d", concat_count); y++; y++;
video = &mvinf.video_prm[0];
criFwPrt_DrawText(x, y, "<Playing Movie Info>"); y++;
criFwPrt_DrawText(x, y, "Size, Framerate : (%d x %d), %6.3f[fps]", video->width, video->height, (CriFloat32)video->framerate/1000.0f); y++;
criFwPrt_DrawText(x, y, "Frame No Per File : %d", frminf->frame_no_per_file); y++;
criFwPrt_DrawText(x, y, "Bitrate : %4.2f [Mbps]", (CriFloat32)mvinf.max_bitrate/1000000.0f); y++; y++;
CriBool criManaPlayer_GetMovieInfo(CriManaPlayerHn player, CriManaMovieInfo *mvinf)
ムービーヘッダー情報の取得
連結再生中のムービーがどのタイミングで切り替わったのかは、
CriManaFrameInfo 構造体のcnt_concatenated_movieメンバーで 判断します。また、連結再生中に
criManaPlayer_GetMovieInfo 関数を呼び出すことで現在再生中のムービー情報を取得することが可能です。