構成 | |
| struct | CriAtomStandardPlayerConfigTag |
| struct | CriAtomAdxPlayerConfigTag |
| struct | CriAtomHcaPlayerConfigTag |
| struct | CriAtomHcaMxPlayerConfigTag |
| struct | CriAtomWavePlayerConfigTag |
| struct | CriAtomAiffPlayerConfigTag |
| struct | CriAtomRawPcmPlayerConfigTag |
| struct | CriAtomStreamingCacheConfigTag |
| ストリーミングキャッシュ作成用コンフィグ構造体 [詳細] | |
マクロ定義 | |
| #define | CRIATOMPLAYER_NO_LOOP_LIMITATION (-1) |
| ループ回数制御用 | |
| #define | criAtomPlayer_SetDefaultConfigForStandardPlayer(p_config) |
| CriAtomStandardPlayerConfigへのデフォルトパラメータのセット | |
| #define | criAtomPlayer_SetDefaultConfigForAdxPlayer(p_config) |
| CriAtomAdxPlayerConfigへのデフォルトパラメータのセット | |
| #define | criAtomPlayer_SetDefaultConfigForHcaPlayer(p_config) |
| CriAtomHcaPlayerConfigへのデフォルトパラメータのセット | |
| #define | criAtomPlayer_SetDefaultConfigForHcaMxPlayer(p_config) |
| CriAtomHcaMxPlayerConfigへのデフォルトパラメータのセット | |
| #define | criAtomPlayer_SetDefaultConfigForWavePlayer(p_config) |
| CriAtomWavePlayerConfigへのデフォルトパラメータのセット | |
| #define | criAtomPlayer_SetDefaultConfigForAiffPlayer(p_config) |
| CriAtomAiffPlayerConfigへのデフォルトパラメータのセット | |
| #define | criAtomPlayer_SetDefaultConfigForRawPcmPlayer(p_config) |
| CriAtomRawPcmPlayerConfigへのデフォルトパラメータのセット | |
列挙型 | |
| enum | CriAtomParameterIdTag { CRIATOM_PARAMETER_ID_VOLUME = 0, CRIATOM_PARAMETER_ID_FREQUENCY_RATIO = 1 } |
| パラメータID [詳細] | |
| enum | CriAtomPlayerStatusTag { CRIATOMPLAYER_STATUS_STOP = 0, CRIATOMPLAYER_STATUS_PREP = 1, CRIATOMPLAYER_STATUS_PLAYING = 2, CRIATOMPLAYER_STATUS_PLAYEND = 3, CRIATOMPLAYER_STATUS_ERROR = 4 } |
| 再生ステータス [詳細] | |
関数 | |
| CriSint32 CRIAPI | criAtomPlayer_CalculateWorkSizeForStandardPlayer (const CriAtomStandardPlayerConfig *config) |
| 標準プレーヤ作成用ワーク領域サイズの計算 | |
| CriAtomPlayerHn CRIAPI | criAtomPlayer_CreateStandardPlayer (const CriAtomStandardPlayerConfig *config, void *work, CriSint32 work_size) |
| 標準プレーヤの作成 | |
| CriSint32 CRIAPI | criAtomPlayer_CalculateWorkSizeForAdxPlayer (const CriAtomAdxPlayerConfig *config) |
| ADXプレーヤ作成用ワーク領域サイズの計算 | |
| CriAtomPlayerHn CRIAPI | criAtomPlayer_CreateAdxPlayer (const CriAtomAdxPlayerConfig *config, void *work, CriSint32 work_size) |
| ADXプレーヤの作成 | |
| CriSint32 CRIAPI | criAtomPlayer_CalculateWorkSizeForHcaPlayer (const CriAtomHcaPlayerConfig *config) |
| HCAプレーヤ作成用ワーク領域サイズの計算 | |
| CriAtomPlayerHn CRIAPI | criAtomPlayer_CreateHcaPlayer (const CriAtomHcaPlayerConfig *config, void *work, CriSint32 work_size) |
| HCAプレーヤの作成 | |
| CriSint32 CRIAPI | criAtomPlayer_CalculateWorkSizeForHcaMxPlayer (const CriAtomHcaMxPlayerConfig *config) |
| HCA-MXプレーヤ作成用ワーク領域サイズの計算 | |
| CriAtomPlayerHn CRIAPI | criAtomPlayer_CreateHcaMxPlayer (const CriAtomHcaMxPlayerConfig *config, void *work, CriSint32 work_size) |
| HCA-MXプレーヤの作成 | |
| CriSint32 CRIAPI | criAtomPlayer_CalculateWorkSizeForWavePlayer (const CriAtomWavePlayerConfig *config) |
| WAVEプレーヤ作成用ワーク領域サイズの計算 | |
| CriAtomPlayerHn CRIAPI | criAtomPlayer_CreateWavePlayer (const CriAtomWavePlayerConfig *config, void *work, CriSint32 work_size) |
| WAVEプレーヤの作成 | |
| CriSint32 CRIAPI | criAtomPlayer_CalculateWorkSizeForAiffPlayer (const CriAtomAiffPlayerConfig *config) |
| AIFFプレーヤ作成用ワーク領域サイズの計算 | |
| CriAtomPlayerHn CRIAPI | criAtomPlayer_CreateAiffPlayer (const CriAtomAiffPlayerConfig *config, void *work, CriSint32 work_size) |
| AIFFプレーヤの作成 | |
| CriSint32 CRIAPI | criAtomPlayer_CalculateWorkSizeForRawPcmPlayer (const CriAtomRawPcmPlayerConfig *config) |
| RawPCMプレーヤ作成用ワーク領域サイズの計算 | |
| CriAtomPlayerHn CRIAPI | criAtomPlayer_CreateRawPcmPlayer (const CriAtomRawPcmPlayerConfig *config, void *work, CriSint32 work_size) |
| RawPCMプレーヤの作成 | |
| void CRIAPI | criAtomPlayer_Destroy (CriAtomPlayerHn player) |
| Atomプレーヤの破棄 | |
| void CRIAPI | criAtomPlayer_SetData (CriAtomPlayerHn player, void *buffer, CriSint32 buffer_size) |
| 音声データのセット(オンメモリデータの指定) | |
| void CRIAPI | criAtomPlayer_SetFile (CriAtomPlayerHn player, CriFsBinderHn binder, const CriChar8 *path) |
| 音声データのセット(ファイルの指定) | |
| void CRIAPI | criAtomPlayer_SetContentId (CriAtomPlayerHn player, CriFsBinderHn binder, CriSint32 id) |
| 音声データのセット(CPKコンテンツIDの指定) | |
| void CRIAPI | criAtomPlayer_SetWaveId (CriAtomPlayerHn player, CriAtomAwbHn awb, CriSint32 id) |
| 音声データのセット(音声データIDの指定) | |
| void CRIAPI | criAtomPlayer_SetPreviousDataAgain (CriAtomPlayerHn player) |
| 同一音声データの再セット | |
| void CRIAPI | criAtomPlayer_DeferCallback (CriAtomPlayerHn player) |
| コールバック関数の再実行要求 | |
| void CRIAPI | criAtomPlayer_Start (CriAtomPlayerHn player) |
| 再生の開始 | |
| void CRIAPI | criAtomPlayer_Stop (CriAtomPlayerHn player) |
| 再生の停止 | |
| void CRIAPI | criAtomPlayer_Pause (CriAtomPlayerHn player, CriBool flag) |
| 再生のポーズ/ポーズ解除 | |
| CriBool CRIAPI | criAtomPlayer_IsPaused (CriAtomPlayerHn player) |
| ポーズされているかどうかのチェック | |
| CriAtomPlayerStatus CRIAPI | criAtomPlayer_GetStatus (CriAtomPlayerHn player) |
| ステータスの取得 | |
| CriSint32 CRIAPI | criAtomPlayer_GetNumChannels (CriAtomPlayerHn player) |
| チャンネル数の取得 | |
| CriBool CRIAPI | criAtomPlayer_GetNumPlayedSamples (CriAtomPlayerHn player, CriSint64 *num_played, CriSint32 *sampling_rate) |
| 再生済みサンプル数の取得 | |
| CriSint64 CRIAPI | criAtomPlayer_GetDecodedDataSize (CriAtomPlayerHn player) |
| デコードデータサイズの取得 | |
| CriSint64 CRIAPI | criAtomPlayer_GetNumDecodedSamples (CriAtomPlayerHn player) |
| デコードサンプル数の取得 | |
| CriSint64 CRIAPI | criAtomPlayer_GetTime (CriAtomPlayerHn player) |
| 再生時刻の取得 | |
| CriBool CRIAPI | criAtomPlayer_GetFormatInfo (CriAtomPlayerHn player, CriAtomFormatInfo *info) |
| 再生音声のフォーマット情報の取得 | |
| CriSint32 CRIAPI | criAtomPlayer_GetInputBufferRemainSize (CriAtomPlayerHn player) |
| 入力バッファ内データ残量の取得 | |
| CriSint32 CRIAPI | criAtomPlayer_GetOutputBufferRemainSamples (CriAtomPlayerHn player) |
| 出力バッファ内データ残量の取得 | |
| void CRIAPI | criAtomPlayer_SetStartTime (CriAtomPlayerHn player, CriSint64 start_time_ms) |
| 再生開始位置の指定 | |
| void CRIAPI | criAtomPlayer_SetVolume (CriAtomPlayerHn player, CriFloat32 vol) |
| ボリュームの指定 | |
| CriFloat32 CRIAPI | criAtomPlayer_GetVolume (CriAtomPlayerHn player) |
| ボリュームの指定 | |
| void CRIAPI | criAtomPlayer_SetChannelVolume (CriAtomPlayerHn player, CriSint32 ch, CriFloat32 vol) |
| チャンネル単位のボリューム指定 | |
| void CRIAPI | criAtomPlayer_SetSendLevel (CriAtomPlayerHn player, CriSint32 ch, CriAtomSpeakerId spk, CriFloat32 level) |
| センドレベルの設定 | |
| void CRIAPI | criAtomPlayer_ResetSendLevel (CriAtomPlayerHn player) |
| センドレベルのリセット | |
| void CRIAPI | criAtomPlayer_SetPanAdx1Compatible (CriAtomPlayerHn player, CriSint32 ch, CriFloat32 pan) |
| パンの設定 | |
| void CRIAPI | criAtomPlayer_ResetPan (CriAtomPlayerHn player) |
| パンのリセット | |
| void CRIAPI | criAtomPlayer_SetFrequencyRatio (CriAtomPlayerHn player, CriFloat32 ratio) |
| 周波数調整比の設定 | |
| void CRIAPI | criAtomPlayer_SetMaxFrequencyRatio (CriAtomPlayerHn player, CriFloat32 ratio) |
| 最大周波数調整比の設定 | |
| void CRIAPI | criAtomPlayer_LimitLoopCount (CriAtomPlayerHn player, CriSint32 count) |
| ループ回数の制限 | |
| void CRIAPI | criAtomPlayer_SetHcaMxMixerId (CriAtomPlayerHn player, CriSint32 mixer_id) |
| HCA-MXデコード先ミキサIDの指定 | |
| void CRIAPI | criAtomPlayer_SetAsrRackId (CriAtomPlayerHn player, CriSint32 rack_id) |
| ASRラックIDの指定 | |
| void CRIAPI | criAtomPlayer_SetRawPcmFormat (CriAtomPlayerHn player, CriAtomPcmFormat pcm_format, CriSint32 num_channels, CriSint32 sampling_rate) |
| RawPCMフォーマットの指定 | |
| void CRIAPI | criAtomPlayer_SetDataRequestCallback (CriAtomPlayerHn player, CriAtomPlayerDataRequestCbFunc func, void *obj) |
| データ要求コールバック関数の登録 | |
| void CRIAPI | criAtomPlayer_SetStatusChangeCallback (CriAtomPlayerHn player, CriAtomPlayerStatusChangeCbFunc func, void *obj) |
| ステータス変更コールバック関数の登録 | |
| void CRIAPI | criAtomPlayer_SetParameterChangeCallback (CriAtomPlayerHn player, CriAtomPlayerParameterChangeCbFunc func, void *obj) |
| パラメータ変更コールバック関数の登録 | |
| void CRIAPI | criAtomPlayer_SetFilterCallback (CriAtomPlayerHn player, CriAtomPlayerFilterCbFunc func, void *obj) |
| 波形フィルタコールバック関数の登録 | |
| void CRIAPI | criAtomPlayer_SetLoadRequestCallback (CriAtomPlayerHn player, CriAtomPlayerLoadRequestCbFunc func, void *obj) |
| ロード要求コールバック関数の登録 | |
| void CRIAPI | criAtomPlayer_SetHcaFormat (CriAtomPlayerHn player, CriSint32 num_channels, CriSint32 sampling_rate, CriSint32 bitrate) |
| HCAフォーマットの指定 | |
| #define CRIATOMPLAYER_NO_LOOP_LIMITATION (-1) |
ループ回数制御用
| #define criAtomPlayer_SetDefaultConfigForStandardPlayer | ( | p_config | ) |
{\
(p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
(p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
(p_config)->streaming_flag = CRI_TRUE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
}
CriAtomStandardPlayerConfigへのデフォルトパラメータのセット
| [out] | p_config | 標準プレーヤ作成用コンフィグ構造体へのポインタ |
| #define criAtomPlayer_SetDefaultConfigForAdxPlayer | ( | p_config | ) |
{\
(p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
(p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
(p_config)->streaming_flag = CRI_TRUE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
}
CriAtomAdxPlayerConfigへのデフォルトパラメータのセット
| [out] | p_config | ADXプレーヤ作成用コンフィグ構造体へのポインタ |
| #define criAtomPlayer_SetDefaultConfigForHcaPlayer | ( | p_config | ) |
{\
(p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
(p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
(p_config)->streaming_flag = CRI_TRUE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
}
CriAtomHcaPlayerConfigへのデフォルトパラメータのセット
| [out] | p_config | HCAプレーヤ作成用コンフィグ構造体へのポインタ |
| #define criAtomPlayer_SetDefaultConfigForHcaMxPlayer | ( | p_config | ) |
{\
(p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
(p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
(p_config)->streaming_flag = CRI_TRUE;\
}
CriAtomHcaMxPlayerConfigへのデフォルトパラメータのセット
| [out] | p_config | HCA-MXプレーヤ作成用コンフィグ構造体へのポインタ |
| #define criAtomPlayer_SetDefaultConfigForWavePlayer | ( | p_config | ) |
{\
(p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
(p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
(p_config)->streaming_flag = CRI_TRUE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
}
CriAtomWavePlayerConfigへのデフォルトパラメータのセット
| [out] | p_config | WAVEプレーヤ作成用コンフィグ構造体へのポインタ |
| #define criAtomPlayer_SetDefaultConfigForAiffPlayer | ( | p_config | ) |
{\
(p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
(p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
(p_config)->streaming_flag = CRI_TRUE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
}
CriAtomAiffPlayerConfigへのデフォルトパラメータのセット
| [out] | p_config | AIFFプレーヤ作成用コンフィグ構造体へのポインタ |
| #define criAtomPlayer_SetDefaultConfigForRawPcmPlayer | ( | p_config | ) |
{\
(p_config)->pcm_format = CRIATOM_PCM_FORMAT_SINT16;\
(p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
(p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
}
CriAtomRawPcmPlayerConfigへのデフォルトパラメータのセット
| [out] | p_config | RawPCMプレーヤ作成用コンフィグ構造体へのポインタ |
| typedef enum CriAtomParameterIdTag CriAtomParameterId |
パラメータID
| typedef struct CriAtomStandardPlayerConfigTag CriAtomStandardPlayerConfig |
標準プレーヤ作成用コンフィグ構造体
| typedef struct CriAtomAdxPlayerConfigTag CriAtomAdxPlayerConfig |
ADXプレーヤ作成用コンフィグ構造体
| typedef struct CriAtomHcaPlayerConfigTag CriAtomHcaPlayerConfig |
HCAプレーヤ作成用コンフィグ構造体
| typedef struct CriAtomHcaMxPlayerConfigTag CriAtomHcaMxPlayerConfig |
HCA-MXプレーヤ作成用コンフィグ構造体
| typedef struct CriAtomWavePlayerConfigTag CriAtomWavePlayerConfig |
WAVEプレーヤ作成用コンフィグ構造体
| typedef struct CriAtomAiffPlayerConfigTag CriAtomAiffPlayerConfig |
AIFFプレーヤ作成用コンフィグ構造体
| typedef struct CriAtomRawPcmPlayerConfigTag CriAtomRawPcmPlayerConfig |
RawPCMプレーヤ作成用コンフィグ構造体
| typedef enum CriAtomPlayerStatusTag CriAtomPlayerStatus |
再生ステータス
| typedef struct CriAtomPlayerTag* CriAtomPlayerHn |
Atomプレーヤハンドル
| typedef void(CRIAPI * CriAtomPlayerDataRequestCbFunc)(void *obj, CriAtomPlayerHn player) |
データ要求コールバック関数
| [in] | obj | ユーザ指定オブジェクト |
| [in] | player | Atomプレーヤハンドル |
| typedef void(CRIAPI * CriAtomPlayerStatusChangeCbFunc)(void *obj, CriAtomPlayerHn player) |
ステータス変更コールバック関数
| [in] | obj | ユーザ指定オブジェクト |
| [in] | player | Atomプレーヤハンドル |
| typedef void(CRIAPI * CriAtomPlayerParameterChangeCbFunc)(void *obj, CriAtomPlayerHn player, CriAtomParameterId id, CriFloat32 value) |
パラメータ変更コールバック関数
| [in] | obj | ユーザ指定オブジェクト |
| [in] | player | Atomプレーヤハンドル |
| [in] | id | パラメータID |
| [in] | value | パラメータ値 |
| typedef void(CRIAPI * CriAtomPlayerFilterCbFunc)(void *obj, CriAtomPcmFormat format, CriSint32 num_channels, CriSint32 num_samples, void *data[]) |
波形フィルタコールバック関数
| [in] | obj | ユーザ指定オブジェクト |
| [in] | format | PCMの形式 |
| [in] | num_channels | チャンネル数 |
| [in] | num_samples | サンプル数 |
| [in,out] | data | PCMデータのチャンネル配列 |
| typedef void(CRIAPI * CriAtomPlayerLoadRequestCbFunc)(void *obj, CriFsBinderHn binder, const CriChar8 *path, CriSint64 offset, CriSint64 length) |
ロード要求コールバック関数
| [in] | obj | ユーザ指定オブジェクト |
| [in] | binder | ファイルロード先バインダ |
| [in] | path | ファイルパス |
| [in] | offset | ロード開始位置 |
| [in] | length | ロード要求サイズ |
| typedef struct CriAtomStreamingCacheConfigTag CriAtomStreamingCacheConfig |
ストリーミングキャッシュ作成用コンフィグ構造体
再生ステータス
| CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForStandardPlayer | ( | const CriAtomStandardPlayerConfig * | config | ) |
標準プレーヤ作成用ワーク領域サイズの計算
| [in] | config | 標準プレーヤ作成用コンフィグ構造体 |
| 0以上 | 正常に処理が完了 |
| -1 | エラーが発生 |
| CriAtomPlayerHn CRIAPI criAtomPlayer_CreateStandardPlayer | ( | const CriAtomStandardPlayerConfig * | config, |
| void * | work, | ||
| CriSint32 | work_size | ||
| ) |
標準プレーヤの作成
| [in] | config | 標準プレーヤ作成用コンフィグ構造体 |
| [in] | work | ワーク領域 |
| [in] | work_size | ワーク領域サイズ |
// 独自のメモリ確保関数 void *user_malloc(void *obj, CriUint32 size) { void *mem; // メモリの確保 mem = malloc(size); return (mem); } // 独自のメモリ解放関数を用意 void user_free(void *obj, void *mem) { // メモリの解放 free(mem); return; } main() { CriAtomStandardPlayerConfig config; // 標準プレーヤ作成用コンフィグ構造体 CriAtomPlayerHn player; // Atomプレーヤハンドル : // 独自のメモリ確保関数を登録 criAtom_SetUserMallocFunction(user_malloc, NULL); // 独自のメモリ解放関数を登録 criAtom_SetUserFreeFunction(user_free, NULL); // 標準プレーヤ作成用コンフィグ構造体を設定 memset(&config, 0, sizeof(config)); config.max_channels = 2; // ステレオ再生可能なプレーヤを作成する config.max_sampling_rate = 48000; // 最大で48000Hzの音声を再生する // 標準プレーヤの作成 // ワーク領域にはNULLと0を指定する。 // →必要なメモリは、登録したメモリ確保関数を使って確保される。 player = criAtomPlayer_CreateStandardPlayer(&config, NULL, 0); : // 音声再生処理 : // 標準プレーヤが不要になった時点で破棄 // →標準プレーヤ作成時にライブラリ内で確保されたメモリが解放される。 criAtomPlayer_Destroy(player); : }※ライブラリ初期化時にメモリ確保/解放関数を登録済みの場合、標準プレーヤ作成時 に再度関数を登録する必要はありません。
main()
{
CriAtomStandardPlayerConfig config; // 標準プレーヤ作成用コンフィグ構造体
CriAtomPlayerHn player; // Atomプレーヤハンドル
void *work; // ワーク領域アドレス
CriSint32 work_size; // ワーク領域サイズ
:
// 標準プレーヤ作成用コンフィグ構造体を設定
memset(&config, 0, sizeof(config));
config.max_channels = 2; // ステレオ再生可能なプレーヤを作成する
config.max_sampling_rate = 48000; // 最大で48000Hzの音声を再生する
// 標準プレーヤの作成に必要なワーク領域のサイズを計算
work_size = criAtomPlayer_CalculateWorkSizeForStandardPlayer(&config);
// ワーク領域用にメモリを確保
work = malloc((size_t)work_size);
// 標準プレーヤの作成
// ワーク領域にはNULLと0を指定する。
// →確保済みのワーク領域を指定する。
player = criAtomPlayer_CreateStandardPlayer(&config, work, work_size);
:
// 音声再生処理
// →この間、確保したメモリは保持し続ける。
:
// 標準プレーヤが不要になった時点で破棄
criAtomPlayer_Destroy(player);
// 必要なくなったワーク領域を解放する
free(work);
:
}
criAtomPlayer_CreateStandardPlayer 関数を実行すると、Atomプレーヤが作成され、 プレーヤを制御するためのハンドル( CriAtomPlayerHn )が返されます。| CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForAdxPlayer | ( | const CriAtomAdxPlayerConfig * | config | ) |
ADXプレーヤ作成用ワーク領域サイズの計算
| [in] | config | ADXプレーヤ作成用コンフィグ構造体 |
| 0以上 | 正常に処理が完了 |
| -1 | エラーが発生 |
| CriAtomPlayerHn CRIAPI criAtomPlayer_CreateAdxPlayer | ( | const CriAtomAdxPlayerConfig * | config, |
| void * | work, | ||
| CriSint32 | work_size | ||
| ) |
ADXプレーヤの作成
| [in] | config | ADXプレーヤ作成用コンフィグ構造体 |
| [in] | work | ワーク領域 |
| [in] | work_size | ワーク領域サイズ |
// 独自のメモリ確保関数 void *user_malloc(void *obj, CriUint32 size) { void *mem; // メモリの確保 mem = malloc(size); return (mem); } // 独自のメモリ解放関数を用意 void user_free(void *obj, void *mem) { // メモリの解放 free(mem); return; } main() { CriAtomAdxPlayerConfig config; // ADXプレーヤ作成用コンフィグ構造体 CriAtomPlayerHn player; // Atomプレーヤハンドル : // 独自のメモリ確保関数を登録 criAtom_SetUserMallocFunction(user_malloc, NULL); // 独自のメモリ解放関数を登録 criAtom_SetUserFreeFunction(user_free, NULL); // ADXプレーヤ作成用コンフィグ構造体を設定 memset(&config, 0, sizeof(config)); config.max_channels = 2; // ステレオ再生可能なプレーヤを作成する config.max_sampling_rate = 48000; // 最大で48000Hzの音声を再生する // ADXプレーヤの作成 // ワーク領域にはNULLと0を指定する。 // →必要なメモリは、登録したメモリ確保関数を使って確保される。 player = criAtomPlayer_CreateAdxPlayer(&config, NULL, 0); : // 音声再生処理 : // ADXプレーヤが不要になった時点で破棄 // →ADXプレーヤ作成時にライブラリ内で確保されたメモリが解放される。 criAtomPlayer_Destroy(player); : }※ライブラリ初期化時にメモリ確保/解放関数を登録済みの場合、ADXプレーヤ作成時 に再度関数を登録する必要はありません。
main()
{
CriAtomAdxPlayerConfig config; // ADXプレーヤ作成用コンフィグ構造体
CriAtomPlayerHn player; // Atomプレーヤハンドル
void *work; // ワーク領域アドレス
CriSint32 work_size; // ワーク領域サイズ
:
// ADXプレーヤ作成用コンフィグ構造体を設定
memset(&config, 0, sizeof(config));
config.max_channels = 2; // ステレオ再生可能なプレーヤを作成する
config.max_sampling_rate = 48000; // 最大で48000Hzの音声を再生する
// ADXプレーヤの作成に必要なワーク領域のサイズを計算
work_size = criAtomPlayer_CalculateWorkSizeForAdxPlayer(&config);
// ワーク領域用にメモリを確保
work = malloc((size_t)work_size);
// ADXプレーヤの作成
// ワーク領域にはNULLと0を指定する。
// →確保済みのワーク領域を指定する。
player = criAtomPlayer_CreateAdxPlayer(&config, work, work_size);
:
// 音声再生処理
// →この間、確保したメモリは保持し続ける。
:
// ADXプレーヤが不要になった時点で破棄
criAtomPlayer_Destroy(player);
// 必要なくなったワーク領域を解放する
free(work);
:
}
criAtomPlayer_CreateAdxPlayer 関数を実行すると、Atomプレーヤが作成され、 プレーヤを制御するためのハンドル( CriAtomPlayerHn )が返されます。| CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForHcaPlayer | ( | const CriAtomHcaPlayerConfig * | config | ) |
HCAプレーヤ作成用ワーク領域サイズの計算
| [in] | config | HCAプレーヤ作成用コンフィグ構造体 |
| 0以上 | 正常に処理が完了 |
| -1 | エラーが発生 |
| CriAtomPlayerHn CRIAPI criAtomPlayer_CreateHcaPlayer | ( | const CriAtomHcaPlayerConfig * | config, |
| void * | work, | ||
| CriSint32 | work_size | ||
| ) |
HCAプレーヤの作成
| [in] | config | HCAプレーヤ作成用コンフィグ構造体 |
| [in] | work | ワーク領域 |
| [in] | work_size | ワーク領域サイズ |
| CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForHcaMxPlayer | ( | const CriAtomHcaMxPlayerConfig * | config | ) |
HCA-MXプレーヤ作成用ワーク領域サイズの計算
| [in] | config | HCA-MXプレーヤ作成用コンフィグ構造体 |
| 0以上 | 正常に処理が完了 |
| -1 | エラーが発生 |
| CriAtomPlayerHn CRIAPI criAtomPlayer_CreateHcaMxPlayer | ( | const CriAtomHcaMxPlayerConfig * | config, |
| void * | work, | ||
| CriSint32 | work_size | ||
| ) |
HCA-MXプレーヤの作成
| [in] | config | HCA-MXプレーヤ作成用コンフィグ構造体 |
| [in] | work | ワーク領域 |
| [in] | work_size | ワーク領域サイズ |
| CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForWavePlayer | ( | const CriAtomWavePlayerConfig * | config | ) |
WAVEプレーヤ作成用ワーク領域サイズの計算
| [in] | config | WAVEプレーヤ作成用コンフィグ構造体 |
| 0以上 | 正常に処理が完了 |
| -1 | エラーが発生 |
| CriAtomPlayerHn CRIAPI criAtomPlayer_CreateWavePlayer | ( | const CriAtomWavePlayerConfig * | config, |
| void * | work, | ||
| CriSint32 | work_size | ||
| ) |
WAVEプレーヤの作成
| [in] | config | WAVEプレーヤ作成用コンフィグ構造体 |
| [in] | work | ワーク領域 |
| [in] | work_size | ワーク領域サイズ |
| CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForAiffPlayer | ( | const CriAtomAiffPlayerConfig * | config | ) |
AIFFプレーヤ作成用ワーク領域サイズの計算
| [in] | config | AIFFプレーヤ作成用コンフィグ構造体 |
| 0以上 | 正常に処理が完了 |
| -1 | エラーが発生 |
| CriAtomPlayerHn CRIAPI criAtomPlayer_CreateAiffPlayer | ( | const CriAtomAiffPlayerConfig * | config, |
| void * | work, | ||
| CriSint32 | work_size | ||
| ) |
AIFFプレーヤの作成
| [in] | config | AIFFプレーヤ作成用コンフィグ構造体 |
| [in] | work | ワーク領域 |
| [in] | work_size | ワーク領域サイズ |
| CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForRawPcmPlayer | ( | const CriAtomRawPcmPlayerConfig * | config | ) |
RawPCMプレーヤ作成用ワーク領域サイズの計算
| [in] | config | RawPCMプレーヤ作成用コンフィグ構造体 |
| 0以上 | 正常に処理が完了 |
| -1 | エラーが発生 |
| CriAtomPlayerHn CRIAPI criAtomPlayer_CreateRawPcmPlayer | ( | const CriAtomRawPcmPlayerConfig * | config, |
| void * | work, | ||
| CriSint32 | work_size | ||
| ) |
RawPCMプレーヤの作成
| [in] | config | RawPCMプレーヤ作成用コンフィグ構造体 |
| [in] | work | ワーク領域 |
| [in] | work_size | ワーク領域サイズ |
| void CRIAPI criAtomPlayer_Destroy | ( | CriAtomPlayerHn | player | ) |
Atomプレーヤの破棄
| [in] | player | Atomプレーヤハンドル |
| void CRIAPI criAtomPlayer_SetData | ( | CriAtomPlayerHn | player, |
| void * | buffer, | ||
| CriSint32 | buffer_size | ||
| ) |
音声データのセット(オンメモリデータの指定)
| [in] | player | Atomプレーヤハンドル |
| [in] | buffer | バッファアドレス |
| [in] | buffer_size | バッファサイズ |
main()
{
:
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
criAtomPlayer_Start(player);
:
}
尚、一旦セットしたデータの情報は、他のデータがセットされるまでAtomプレーヤ内に保持 されます。// データ要求コールバック関数 void on_data_request(void *obj, CriAtomPlayerHn player) { // 続けて再生するデータをセット criAtomPlayer_SetData(player, buffer2, buffer_size2); } main() { : // データ要求コールバック関数の登録 criAtomPlayer_SetDataRequestCallback(player, on_data_request, NULL); // 音声データをセット criAtomPlayer_SetData(player, buffer1, buffer_size1); // セットされた音声データを再生 criAtomPlayer_Start(player); : }データ要求コールバック関数内で criAtomPlayer_SetFile 関数を実行することで、 オンメモリデータとファイルを連結して再生することも可能です。
| void CRIAPI criAtomPlayer_SetFile | ( | CriAtomPlayerHn | player, |
| CriFsBinderHn | binder, | ||
| const CriChar8 * | path | ||
| ) |
音声データのセット(ファイルの指定)
| [in] | player | Atomプレーヤハンドル |
| [in] | binder | バインダハンドル |
| [in] | path | ファイルパス |
main()
{
:
// 音声ファイルをセット
criAtomPlayer_SetFile(player, NULL, "sample.adx");
// セットされた音声データを再生
criAtomPlayer_Start(player);
:
}
尚、一旦セットしたファイルの情報は、他のデータがセットされるまでAtomプレーヤ内に保持 されます。// データ要求コールバック関数 void on_data_request(void *obj, CriAtomPlayerHn player) { // 続けて再生するファイルをセット criAtomPlayer_SetFile(player, NULL, "sample2.adx"); } main() { : // データ要求コールバック関数の登録 criAtomPlayer_SetDataRequestCallback(player, on_data_request, NULL); // 音声ファイルをセット criAtomPlayer_SetFile(player, NULL, "sample1.adx"); // セットされた音声データを再生 criAtomPlayer_Start(player); : }尚、第二引数(binder)にバインダを指定することで、 CPKファイル内のコンテンツを再生することも可能です。
main()
{
:
// CPKファイルをバインド
criFsBinder_BindCpk(binder, "sample.cpk", work, work_size, &bind_id);
// バインド完了待ち
for (;;) {
// ステータスのチェック
criFsBinder_GetStatus(binder, &status);
if (status == CRIFSBINDER_STATUS_COMPLETE) {
break;
}
// サーバ処理の実行
criFs_ExecuteMain();
// Vsync待ち等
:
}
:
// 音声ファイルをセット
// sample.cpk内のcontent.adxをセット
criAtomPlayer_SetFile(player, binder, "content.adx");
// セットされた音声データを再生
criAtomPlayer_Start(player);
:
}
データ要求コールバック関数内で criAtomPlayer_SetData 関数を実行することで、 ファイルとオンメモリデータを連結して再生することも可能です。 | void CRIAPI criAtomPlayer_SetContentId | ( | CriAtomPlayerHn | player, |
| CriFsBinderHn | binder, | ||
| CriSint32 | id | ||
| ) |
音声データのセット(CPKコンテンツIDの指定)
| [in] | player | Atomプレーヤハンドル |
| [in] | binder | バインダハンドル |
| [in] | id | コンテンツID |
main()
{
:
// CPKファイルをバインド
criFsBinder_BindCpk(binder, "sample.cpk", work, work_size, &bind_id);
// バインド完了待ち
for (;;) {
// ステータスのチェック
criFsBinder_GetStatus(binder, &status);
if (status == CRIFSBINDER_STATUS_COMPLETE) {
break;
}
// サーバ処理の実行
criFs_ExecuteMain();
// Vsync待ち等
:
}
:
// 音声ファイルをセット
// sample.cpk内の1番のコンテンツをセット
criAtomPlayer_SetContentId(player, binder, 1);
// セットされた音声データを再生
criAtomPlayer_Start(player);
:
}
尚、一旦セットしたファイルの情報は、他のデータがセットされるまでAtomプレーヤ内に保持 されます。// データ要求コールバック関数 void on_data_request(void *obj, CriAtomPlayerHn player) { // バインダの取得 binder = (CriFsBinderHn)obj; // 続けて再生するファイルをセット // →バインダ内の2番のコンテンツをセット criAtomPlayer_SetContentId(player, binder, 2); } main() { : // データ要求コールバック関数の登録 criAtomPlayer_SetDataRequestCallback(player, on_data_request, binder); // 音声ファイルをセット // →バインダ内の1番のコンテンツをセット criAtomPlayer_SetContentId(player, binder, 1); // セットされた音声データを再生 criAtomPlayer_Start(player); : }データ要求コールバック関数内で criAtomPlayer_SetData 関数を実行することで、 ファイルとオンメモリデータを連結して再生することも可能です。
| void CRIAPI criAtomPlayer_SetWaveId | ( | CriAtomPlayerHn | player, |
| CriAtomAwbHn | awb, | ||
| CriSint32 | id | ||
| ) |
音声データのセット(音声データIDの指定)
| [in] | player | Atomプレーヤハンドル |
| [in] | awb | AWBハンドル |
| [in] | id | 波形データID |
main()
{
:
// AWBのTOC情報をロードしてAWBハンドルを作成
awb = criAtomAwb_LoadToc(NULL, "sample.awb", NULL, 0);
:
// 波形データをセット
// AWB内の1番の波形データをセット
criAtomPlayer_SetWaveId(player, awb, 1);
// セットされた音声データを再生
criAtomPlayer_Start(player);
:
}
尚、一旦セットしたファイルの情報は、他のデータがセットされるまでAtomプレーヤ内に保持 されます。// データ要求コールバック関数 void on_data_request(void *obj, CriAtomPlayerHn player) { // AWBハンドルの取得 awb = (CriAtomAwbHn)obj; // 続けて再生するファイルをセット // →AWB内の2番の波形データをセット criAtomPlayer_SetWaveId(player, awb, 2); } main() { : // データ要求コールバック関数の登録 criAtomPlayer_SetDataRequestCallback(player, on_data_request, awb); // 波形データをセット // →AWB内の1番の波形データをセット criAtomPlayer_SetWaveId(player, awb, 1); // セットされた波形データを再生 criAtomPlayer_Start(player); : }データ要求コールバック関数内で criAtomPlayer_SetData 関数を実行することで、 ファイルとオンメモリデータを連結して再生することも可能です。
| void CRIAPI criAtomPlayer_SetPreviousDataAgain | ( | CriAtomPlayerHn | player | ) |
同一音声データの再セット
| [in] | player | Atomプレーヤハンドル |
// データ要求コールバック関数 void on_data_request(void *obj, CriAtomPlayerHn player) { // 前回再生したデータを再セット criAtomPlayer_SetPreviousDataAgain(player); } main() { : // データ要求コールバック関数の登録 criAtomPlayer_SetDataRequestCallback(player, on_data_request, NULL); // 音声データをセット criAtomPlayer_SetData(player, buffer, buffer_size); // セットされた音声データを再生 criAtomPlayer_Start(player); : }
| void CRIAPI criAtomPlayer_DeferCallback | ( | CriAtomPlayerHn | player | ) |
コールバック関数の再実行要求
| [in] | player | Atomプレーヤハンドル |
| void CRIAPI criAtomPlayer_Start | ( | CriAtomPlayerHn | player | ) |
再生の開始
| [in] | player | Atomプレーヤハンドル |
main()
{
:
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
criAtomPlayer_Start(player);
:
}
本関数実行後、再生の進み具合(発音が開始されたか、再生が完了したか等)がどうなって いるかは、ステータスを取得することで確認が可能です。 main()
{
:
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
criAtomPlayer_Start(player);
// 再生完了待ち
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
if (status == CRIATOMPLAYER_STATUS_PLAYEND) {
// 再生終了時はループを抜ける
break;
}
// サーバ処理の実行
criAtom_ExecuteMain();
// 画面表示の更新等
:
}
:
}
main()
{
:
// 音声ファイルをセット
criAtomPlayer_SetData(player, NULL, "sample.adx");
// 再生開始前にポーズをかけておく
criAtomPlayer_Pause(player, CRI_TRUE);
// セットされた音声データを再生
criAtomPlayer_Start(player);
// ステータスがCRIATOMPLAYER_STATUS_PLAYINGに遷移するのを待つ
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
if (status == CRIATOMPLAYER_STATUS_PLAYING) {
// CRIATOMPLAYER_STATUS_PLAYING状態になった時点でループを抜ける
break;
}
// サーバ処理の実行
criAtom_ExecuteMain();
// 画面表示の更新等
:
}
// ポーズの解除
// →次のサーバ処理が実行されるタイミングで発音が開始される
criAtomPlayer_Pause(player, CRI_FALSE);
:
}
| void CRIAPI criAtomPlayer_Stop | ( | CriAtomPlayerHn | player | ) |
再生の停止
| [in] | player | Atomプレーヤハンドル |
main()
{
:
// 再生の停止を要求
criAtomPlayer_Stop(player);
// ステータスがCRIATOMPLAYER_STATUS_STOPに遷移するのを待つ
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
if (status == CRIATOMPLAYER_STATUS_STOP) {
// CRIATOMPLAYER_STATUS_STOP状態になった時点でループを抜ける
break;
}
// サーバ処理の実行
criAtom_ExecuteMain();
// 画面表示の更新等
:
}
// 別の音声ファイルをセット
criAtomPlayer_SetData(player, NULL, "sample.adx");
// セットされた音声データを再生
criAtomPlayer_Start(player);
:
}
| void CRIAPI criAtomPlayer_Pause | ( | CriAtomPlayerHn | player, |
| CriBool | flag | ||
| ) |
再生のポーズ/ポーズ解除
| [in] | player | Atomプレーヤハンドル |
| [in] | flag | 動作フラグ(CRI_TRUE = ポーズ、CRI_FALSE = ポーズ解除) |
main()
{
:
// 音声ファイルをセット
criAtomPlayer_SetData(player, NULL, "sample.adx");
// 再生開始前にポーズをかけておく
criAtomPlayer_Pause(player, CRI_TRUE);
// セットされた音声データを再生
criAtomPlayer_Start(player);
// ステータスがCRIATOMPLAYER_STATUS_PLAYINGに遷移するのを待つ
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
if (status == CRIATOMPLAYER_STATUS_PLAYING) {
// CRIATOMPLAYER_STATUS_PLAYING状態になった時点でループを抜ける
break;
}
// サーバ処理の実行
criAtom_ExecuteMain();
// 画面表示の更新等
:
}
// ポーズの解除
// →次のサーバ処理が実行されるタイミングで発音が開始される
criAtomPlayer_Pause(player, CRI_FALSE);
:
}
| CriBool CRIAPI criAtomPlayer_IsPaused | ( | CriAtomPlayerHn | player | ) |
ポーズされているかどうかのチェック
| [in] | player | Atomプレーヤハンドル |
| CriAtomPlayerStatus CRIAPI criAtomPlayer_GetStatus | ( | CriAtomPlayerHn | player | ) |
ステータスの取得
| [in] | player | Atomプレーヤハンドル |
main()
{
:
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
criAtomPlayer_Start(player);
// 再生完了待ち
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
if (status == CRIATOMPLAYER_STATUS_PLAYEND) {
// 再生終了時はループを抜ける
break;
}
// サーバ処理の実行
criAtom_ExecuteMain();
// 画面表示の更新等
:
}
:
}
main()
{
:
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
if (status == CRIATOMPLAYER_STATUS_ERROR) {
// CRIATOMPLAYER_STATUS_ERRORになった時点でエラーメッセージを表示する
:
}
:
}
| CriSint32 CRIAPI criAtomPlayer_GetNumChannels | ( | CriAtomPlayerHn | player | ) |
チャンネル数の取得
| [in] | player | Atomプレーヤハンドル |
| CriBool CRIAPI criAtomPlayer_GetNumPlayedSamples | ( | CriAtomPlayerHn | player, |
| CriSint64 * | num_played, | ||
| CriSint32 * | sampling_rate | ||
| ) |
再生済みサンプル数の取得
| [in] | player | Atomプレーヤハンドル |
| [out] | num_played | 再生済みサンプル数(サンプル数単位) |
| [out] | sampling_rate | サンプリングレート(Hz単位) |
| CriSint64 CRIAPI criAtomPlayer_GetDecodedDataSize | ( | CriAtomPlayerHn | player | ) |
デコードデータサイズの取得
| [in] | player | Atomプレーヤハンドル |
| CriSint64 CRIAPI criAtomPlayer_GetNumDecodedSamples | ( | CriAtomPlayerHn | player | ) |
デコードサンプル数の取得
| [in] | player | Atomプレーヤハンドル |
| CriSint64 CRIAPI criAtomPlayer_GetTime | ( | CriAtomPlayerHn | player | ) |
再生時刻の取得
| [in] | player | Atomプレーヤハンドル |
| CriBool CRIAPI criAtomPlayer_GetFormatInfo | ( | CriAtomPlayerHn | player, |
| CriAtomFormatInfo * | info | ||
| ) |
再生音声のフォーマット情報の取得
| [in] | player | Atomプレーヤハンドル |
| [out] | info | フォーマット情報 |
| CriSint32 CRIAPI criAtomPlayer_GetInputBufferRemainSize | ( | CriAtomPlayerHn | player | ) |
入力バッファ内データ残量の取得
| [in] | player | Atomプレーヤハンドル |
| CriSint32 CRIAPI criAtomPlayer_GetOutputBufferRemainSamples | ( | CriAtomPlayerHn | player | ) |
出力バッファ内データ残量の取得
| [in] | player | Atomプレーヤハンドル |
| void CRIAPI criAtomPlayer_SetStartTime | ( | CriAtomPlayerHn | player, |
| CriSint64 | start_time_ms | ||
| ) |
再生開始位置の指定
| [in] | player | Atomプレーヤハンドル |
| [in] | start_time_ms | 再生開始位置(ミリ秒指定) |
| void CRIAPI criAtomPlayer_SetVolume | ( | CriAtomPlayerHn | player, |
| CriFloat32 | vol | ||
| ) |
ボリュームの指定
| [in] | player | Atomプレーヤハンドル |
| [in] | vol | ボリューム値 |
| CriFloat32 CRIAPI criAtomPlayer_GetVolume | ( | CriAtomPlayerHn | player | ) |
ボリュームの指定
| [in] | player | Atomプレーヤハンドル |
| void CRIAPI criAtomPlayer_SetChannelVolume | ( | CriAtomPlayerHn | player, |
| CriSint32 | ch, | ||
| CriFloat32 | vol | ||
| ) |
チャンネル単位のボリューム指定
| [in] | player | Atomプレーヤハンドル |
| [in] | ch | チャンネル番号 |
| [in] | vol | ボリューム値(0.0f〜1.0f) |
| void CRIAPI criAtomPlayer_SetSendLevel | ( | CriAtomPlayerHn | player, |
| CriSint32 | ch, | ||
| CriAtomSpeakerId | spk, | ||
| CriFloat32 | level | ||
| ) |
センドレベルの設定
| [in] | player | Atomプレーヤハンドル |
| [in] | ch | チャンネル番号 |
| [in] | spk | スピーカーID |
| [in] | level | ボリューム値(0.0f〜1.0f) |
criAtomPlayer_SetSendLevel(player, 0, CRIATOM_SPEAKER_FRONT_RIGHT, 1.0f);チャンネル単位のボリューム指定( criAtomPlayer_SetChannelVolume 関数) と異なり、本関数では1つのチャンネルのデータを複数のスピーカーから異なる ボリュームで出力することが可能です。
criAtomPlayer_SetSendLevel(player, 1, CRIATOM_SPEAKER_FRONT_LEFT, 0.3f); criAtomPlayer_SetSendLevel(player, 1, CRIATOM_SPEAKER_FRONT_RIGHT, 0.5f); criAtomPlayer_SetSendLevel(player, 1, CRIATOM_SPEAKER_FRONT_CENTER, 0.7f);尚、セットされたセンドレベルの値は criAtomPlayer_ResetSendLevel 関数で リセットすることが可能です。
| void CRIAPI criAtomPlayer_ResetSendLevel | ( | CriAtomPlayerHn | player | ) |
センドレベルのリセット
| [in] | player | Atomプレーヤハンドル |
| void CRIAPI criAtomPlayer_SetPanAdx1Compatible | ( | CriAtomPlayerHn | player, |
| CriSint32 | ch, | ||
| CriFloat32 | pan | ||
| ) |
パンの設定
| [in] | player | Atomプレーヤハンドル |
| [in] | ch | チャンネル番号 |
| [in] | pan | パン設定値(-1.0f〜1.0f) |
| void CRIAPI criAtomPlayer_ResetPan | ( | CriAtomPlayerHn | player | ) |
パンのリセット
| [in] | player | Atomプレーヤハンドル |
| void CRIAPI criAtomPlayer_SetFrequencyRatio | ( | CriAtomPlayerHn | player, |
| CriFloat32 | ratio | ||
| ) |
周波数調整比の設定
| [in] | player | Atomプレーヤハンドル |
| [in] | ratio | 周波数調整比 |
// 1/2の速度(-1オクターブ)で音声を再生するよう指定 criAtomPlayer_SetFrequencyRatio(player, 0.5f);
main()
{
CriAtomAdxPlayerConfig config; // Atomプレーヤ作成用コンフィグ構造体
CriAtomAdxPlayerHn player; // Atomプレーヤハンドル
:
// Atomプレーヤ作成用コンフィグ構造体を設定
memset(&config, 0, sizeof(config));
config.max_channels = 2; // ステレオ再生可能なプレーヤを作成する
// 48000Hzの音声を1.5倍速で再生する場合
// 48000×1.5=72000Hzの設定でAtomプレーヤを作成する
config.max_sampling_rate = 72000; // 最大で72000Hzの音声を再生する
// Atomプレーヤの作成
// ワーク領域にはNULLと0を指定する。
// →必要なメモリはライブラリ内で動的に確保される。
player = criAtomPlayer_CreateAdxPlayer(&config, NULL, 0);
:
// 周波数比を変更する
criAtomPlayer_SetFrequencyRatio(player, 1.5f);
:
}
本関数は一部の機種でのみ利用が可能です。| void CRIAPI criAtomPlayer_SetMaxFrequencyRatio | ( | CriAtomPlayerHn | player, |
| CriFloat32 | ratio | ||
| ) |
最大周波数調整比の設定
| [in] | player | Atomプレーヤハンドル |
| [in] | ratio | 最大周波数調整比 |
| void CRIAPI criAtomPlayer_LimitLoopCount | ( | CriAtomPlayerHn | player, |
| CriSint32 | count | ||
| ) |
ループ回数の制限
| [in] | player | Atomプレーヤハンドル |
| [in] | count | ループ制限回数 |
| void CRIAPI criAtomPlayer_SetHcaMxMixerId | ( | CriAtomPlayerHn | player, |
| CriSint32 | mixer_id | ||
| ) |
HCA-MXデコード先ミキサIDの指定
| [in] | player | Atomプレーヤハンドル |
| [in] | mixer_id | ミキサID |
| void CRIAPI criAtomPlayer_SetAsrRackId | ( | CriAtomPlayerHn | player, |
| CriSint32 | rack_id | ||
| ) |
ASRラックIDの指定
| [in] | player | Atomプレーヤハンドル |
| [in] | rack_id | ラックID |
| void CRIAPI criAtomPlayer_SetRawPcmFormat | ( | CriAtomPlayerHn | player, |
| CriAtomPcmFormat | pcm_format, | ||
| CriSint32 | num_channels, | ||
| CriSint32 | sampling_rate | ||
| ) |
RawPCMフォーマットの指定
| [in] | player | Atomプレーヤハンドル |
| [in] | pcm_format | RawPCMのデータフォーマット |
| [in] | num_channels | チャンネル数 |
| [in] | sampling_rate | サンプリングレート |
| void CRIAPI criAtomPlayer_SetDataRequestCallback | ( | CriAtomPlayerHn | player, |
| CriAtomPlayerDataRequestCbFunc | func, | ||
| void * | obj | ||
| ) |
データ要求コールバック関数の登録
| [in] | player | Atomプレーヤハンドル |
| [in] | func | データ要求コールバック関数 |
| [in] | obj | ユーザ指定オブジェクト |
// データ要求コールバック関数 void on_data_request(void *obj, CriAtomPlayerHn player) { // 続けて再生するデータをセット criAtomPlayer_SetData(player, buffer2, buffer_size2); } main() { : // データ要求コールバック関数の登録 criAtomPlayer_SetDataRequestCallback(player, on_data_request, NULL); // 音声データをセット criAtomPlayer_SetData(player, buffer1, buffer_size1); // セットされた音声データを再生 criAtomPlayer_Start(player); : }以下の処理により、同一音声データを無限にループ再生可能です。
// データ要求コールバック関数 void on_data_request(void *obj, CriAtomPlayerHn player) { // 前回再生したデータを再セット criAtomPlayer_SetPreviousDataAgain(player); } main() { : // データ要求コールバック関数の登録 criAtomPlayer_SetDataRequestCallback(player, on_data_request, NULL); // 音声データをセット criAtomPlayer_SetData(player, buffer, buffer_size); // セットされた音声データを再生 criAtomPlayer_Start(player); : }
| void CRIAPI criAtomPlayer_SetStatusChangeCallback | ( | CriAtomPlayerHn | player, |
| CriAtomPlayerStatusChangeCbFunc | func, | ||
| void * | obj | ||
| ) |
ステータス変更コールバック関数の登録
| [in] | player | Atomプレーヤハンドル |
| [in] | func | ステータス変更コールバック関数 |
| [in] | obj | ユーザ指定オブジェクト |
// ステータス変更コールバック関数 void on_status_change(void *obj, CriAtomPlayerHn player) { CriAtomPlayerStatus status; // ステータスの取得 status = criAtomPlayer_GetStatus(player); if (status == CRIATOMPLAYER_STATUS_ERROR) { // リードエラー発生時の処理 : } } main() { : // ステータス変更コールバック関数の登録 criAtomPlayer_SetStatusChangeCallback(player, on_status_change, NULL); // 音声ファイルをセット criAtomPlayer_SetFile(player, NULL, "sample.adx"); // セットされた音声ファイルを再生 criAtomPlayer_Start(player); : }
| void CRIAPI criAtomPlayer_SetParameterChangeCallback | ( | CriAtomPlayerHn | player, |
| CriAtomPlayerParameterChangeCbFunc | func, | ||
| void * | obj | ||
| ) |
パラメータ変更コールバック関数の登録
| [in] | player | Atomプレーヤハンドル |
| [in] | func | パラメータ変更コールバック関数 |
| [in] | obj | ユーザ指定オブジェクト |
| void CRIAPI criAtomPlayer_SetFilterCallback | ( | CriAtomPlayerHn | player, |
| CriAtomPlayerFilterCbFunc | func, | ||
| void * | obj | ||
| ) |
波形フィルタコールバック関数の登録
| [in] | player | Atomプレーヤハンドル |
| [in] | func | 波形フィルタコールバック関数 |
| [in] | obj | ユーザ指定オブジェクト |
| void CRIAPI criAtomPlayer_SetLoadRequestCallback | ( | CriAtomPlayerHn | player, |
| CriAtomPlayerLoadRequestCbFunc | func, | ||
| void * | obj | ||
| ) |
ロード要求コールバック関数の登録
| [in] | player | Atomプレーヤハンドル |
| [in] | func | ロード要求コールバック関数 |
| [in] | obj | ユーザ指定オブジェクト |
| void CRIAPI criAtomPlayer_SetHcaFormat | ( | CriAtomPlayerHn | player, |
| CriSint32 | num_channels, | ||
| CriSint32 | sampling_rate, | ||
| CriSint32 | bitrate | ||
| ) |
HCAフォーマットの指定
| [in] | player | Atomプレーヤ |
| [in] | num_channels | チャンネル数 |
| [in] | sampling_rate | サンプリング周波数 |
| [in] | bitrate | ビットレート |