![]() ![]()
|
|
|
|
|
|
: チュートリアルプログラム |
|
|
|
: ACFファイル |
|
: ACBファイル |
|
: ACBヘッダーファイル |
|
: AWBファイル |
|
|
![]() ![]()
|
|
|
|
[プラットフォーム固有] |
|
: チュートリアルプログラム |
|
|
|
: キュー再生チュートリアル |
|
: プロジェクトファイルフォルダー |
|
: Visual Studio ソリューションファイル |
|
: Visual Studio プロジェクトファイル |
|
: Visual Studio フィルターファイル |
|
|
|
: キュー再生チュートリアル |
|
|
/* CRI SDK Header */ #include <cri_xpt.h> /* CRI ADX2 Headers */ #include <cri_atom_ex.h> #include <cri_atom_wasapi.h> /* チュートリアルで使用するACBファイルのヘッダーファイル */ #include "../../../../common/smpdata/criatomex/tutorial_streaming.h"
/* データディレクトリへのパス */ #define PATH "..\\..\\..\\..\\..\\common\\smpdata\\criatomex\\" /* サンプルで使用するファイル名 */ #define ACF_FILE "TutorialProject.acf" #define ACB_FILE "tutorial_streaming.acb" #define AWB_FILE "tutorial_streaming_streamfiles.awb"
/* main関数 */ CriSint32 main(CriSint32 argc, CriChar8 *argv[]) { CriAtomExStandardVoicePoolConfig voice_pool_config; CriAtomDbasId dbas_id; CriAtomExPlayerHn player; CriAtomExVoicePoolHn voice_pool; CriAtomExAcbHn acb_hn; UNUSED(argc); UNUSED(argv); /* 最低限の初期化 */ tutorial_initialize(); /* エラーコールバック関数の登録 */ criErr_SetCallback(tutorial_error_callback_func); /* メモリアロケーターの登録 */ criAtomEx_SetUserAllocator(tutorial_alloc, tutorial_free, NULL); /* ライブラリの初期化 */ criAtomEx_Initialize_WASAPI(NULL, NULL, 0); /* D-BASの作成 */ dbas_id = criAtomDbas_Create(NULL, NULL, 0); /* ACFファイルの読み込みと登録 */ criAtomEx_RegisterAcfFile(NULL, PATH ACF_FILE, NULL, 0); /* ACBファイルを読み込み、ACBハンドルを作成 */ acb_hn = criAtomExAcb_LoadAcbFile( NULL, PATH ACB_FILE, NULL, PATH AWB_FILE, NULL, 0); /* ボイスプールの作成 */ criAtomExVoicePool_SetDefaultConfigForStandardVoicePool(&voice_pool_config); voice_pool_config.player_config.streaming_flag = CRI_TRUE; voice_pool = criAtomExVoicePool_AllocateStandardVoicePool(&voice_pool_config, NULL, 0); /* プレーヤの作成 */ player = criAtomExPlayer_Create(NULL, NULL, 0); /* キューIDの指定 */ criAtomExPlayer_SetCueId(player, acb_hn, CRI_TUTORIAL_STREAMING_MUSIC_TR); /* 再生の開始 */ criAtomExPlayer_Start(player); for(;;) { CriAtomExPlayerStatus explayer_status; tutorial_sleep(10); /* サーバ処理の実行 */ criAtomEx_ExecuteMain(); /* Exプレーヤのステータス確認 */ explayer_status = criAtomExPlayer_GetStatus(player); /* 再生が終了したらループを抜ける */ if (explayer_status == CRIATOMEXPLAYER_STATUS_PLAYEND) { break; } } /* Atomハンドルの破棄 */ criAtomExPlayer_Destroy(player); /* ボイスプールの破棄 */ criAtomExVoicePool_Free(voice_pool); /* ACBハンドルの破棄 */ criAtomExAcb_Release(acb_hn); /* ACFの登録解除 */ criAtomEx_UnregisterAcf(); /* D-BASの破棄 */ criAtomDbas_Destroy(dbas_id); /* ライブラリの終了 */ criAtomEx_Finalize_WASAPI(); /* 最小限の終了処理*/ tutorial_finalize(); return 0; }
/* CRI SDK Header */ #include <cri_xpt.h> /* CRI ADX2 Headers */ #include <cri_atom_ex.h> #include <cri_atom_wasapi.h> /* チュートリアルで使用するACBファイルのヘッダーファイル */ #include "../../../../common/smpdata/criatomex/tutorial_streaming.h"
/* エラーコールバック関数の登録 */ criErr_SetCallback(tutorial_error_callback_func); /* メモリアロケーターの登録 */ criAtomEx_SetUserAllocator(tutorial_alloc, tutorial_free, NULL); /* ライブラリの初期化 */ criAtomEx_Initialize_WASAPI(NULL, NULL, 0);
/* D-BASの作成 */ dbas_id = criAtomDbas_Create(NULL, NULL, 0);
/* ACFファイルの読み込みと登録 */ criAtomEx_RegisterAcfFile(NULL, PATH ACF_FILE, NULL, 0); /* ACBファイルを読み込み、ACBハンドルを作成 */ acb_hn = criAtomExAcb_LoadAcbFile( NULL, PATH ACB_FILE, NULL, PATH AWB_FILE, NULL, 0);
/* ボイスプールの作成 */ criAtomExVoicePool_SetDefaultConfigForStandardVoicePool(&voice_pool_config); voice_pool_config.player_config.streaming_flag = CRI_TRUE; voice_pool = criAtomExVoicePool_AllocateStandardVoicePool(&voice_pool_config, NULL, 0);
/* プレーヤの作成 */ player = criAtomExPlayer_Create(NULL, NULL, 0);
/* キューIDの指定 */ criAtomExPlayer_SetCueId(player, acb_hn, CRI_TUTORIAL_STREAMING_MUSIC_TR); /* 再生の開始 */ criAtomExPlayer_Start(player);
/* 再生ループ */ for(;;) { CriAtomExPlayerStatus explayer_status; tutorial_sleep(10); /* サーバー処理の実行 */ criAtomEx_ExecuteMain(); /* Exプレーヤのステータス確認 */ explayer_status = criAtomExPlayer_GetStatus(player); /* 再生が終了したらループを抜ける */ if (explayer_status == CRIATOMEXPLAYER_STATUS_PLAYEND) { break; } }
/* Atomハンドルの破棄 */ criAtomExPlayer_Destroy(player); /* ボイスプールの破棄 */ criAtomExVoicePool_Free(voice_pool); /* ACBハンドルの破棄 */ criAtomExAcb_Release(acb_hn); /* ACFの登録解除 */ criAtomEx_UnregisterAcf(); /* D-BASの破棄 */ criAtomDbas_Destroy(dbas_id); /* ライブラリの終了 */ criAtomEx_Finalize_WASAPI();