CRI ADX2  Last Updated: 2021-04-27 11:06 p
CriAtomPlayer API

データ構造

struct  CriAtomStandardPlayerConfigTag
 
struct  CriAtomAdxPlayerConfigTag
 
struct  CriAtomHcaPlayerConfigTag
 
struct  CriAtomHcaMxPlayerConfigTag
 
struct  CriAtomWavePlayerConfigTag
 
struct  CriAtomAiffPlayerConfigTag
 
struct  CriAtomRawPcmPlayerConfigTag
 
struct  CriAtomInstrumentPlayerConfigTag
 
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へのデフォルトパラメーターのセット [詳解]
 
#define criAtomPlayer_SetDefaultConfigForInstrumentPlayer(p_config)
 CriAtomInstrumentPlayerConfigへデフォルトパラメーターのセット [詳解]
 

型定義

typedef enum CriAtomParameterIdTag CriAtomParameterId
 パラメーターID [詳解]
 
typedef struct CriAtomStandardPlayerConfigTag CriAtomStandardPlayerConfig
 
typedef struct CriAtomAdxPlayerConfigTag CriAtomAdxPlayerConfig
 
typedef struct CriAtomHcaPlayerConfigTag CriAtomHcaPlayerConfig
 
typedef struct CriAtomHcaMxPlayerConfigTag CriAtomHcaMxPlayerConfig
 
typedef struct CriAtomWavePlayerConfigTag CriAtomWavePlayerConfig
 
typedef struct CriAtomAiffPlayerConfigTag CriAtomAiffPlayerConfig
 
typedef struct CriAtomRawPcmPlayerConfigTag CriAtomRawPcmPlayerConfig
 
typedef struct CriAtomInstrumentPlayerConfigTag CriAtomInstrumentPlayerConfig
 
typedef enum CriAtomPlayerStatusTag CriAtomPlayerStatus
 再生ステータス [詳解]
 
typedef struct CriAtomPlayerTag * CriAtomPlayerHn
 Atomプレーヤーハンドル [詳解]
 
typedef void(CRIAPI * CriAtomPlayerDataRequestCbFunc) (void *obj, CriAtomPlayerHn player)
 データ要求コールバック関数 [詳解]
 
typedef void(CRIAPI * CriAtomPlayerStatusChangeCbFunc) (void *obj, CriAtomPlayerHn player)
 ステータス変更コールバック関数 [詳解]
 
typedef void(CRIAPI * CriAtomPlayerParameterChangeCbFunc) (void *obj, CriAtomPlayerHn player, CriAtomParameterId id, CriFloat32 value)
 パラメーター変更コールバック関数 [詳解]
 
typedef void(CRIAPI * CriAtomPlayerFilterCbFunc) (void *obj, CriAtomPcmFormat format, CriSint32 num_channels, CriSint32 num_samples, void *data[])
 波形フィルターコールバック関数 [詳解]
 
typedef void(CRIAPI * CriAtomPlayerLoadRequestCbFunc) (void *obj, CriFsBinderHn binder, const CriChar8 *path, CriSint64 offset, CriSint64 length)
 ロード要求コールバック関数 [詳解]
 
typedef struct CriAtomStreamingCacheConfigTag CriAtomStreamingCacheConfig
 ストリーミングキャッシュ作成用コンフィグ構造体 [詳解]
 

列挙型

enum  CriAtomParameterIdTag { CRIATOM_PARAMETER_ID_VOLUME = 0 , CRIATOM_PARAMETER_ID_FREQUENCY_RATIO = 1 , CRIATOM_PARAMETER_ID_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 パラメーターID [詳解]
 
enum  CriAtomPlayerStatusTag {
  CRIATOMPLAYER_STATUS_STOP = 0 , CRIATOMPLAYER_STATUS_PREP = 1 , CRIATOMPLAYER_STATUS_PLAYING = 2 , CRIATOMPLAYER_STATUS_PLAYEND = 3 ,
  CRIATOMPLAYER_STATUS_ERROR = 4 , CRIATOMPLAYER_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 再生ステータス [詳解]
 

関数

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)
 再生済みサンプル数の取得 [詳解]
 
CriBool CRIAPI criAtomPlayer_GetNumRenderedSamples (CriAtomPlayerHn player, CriSint64 *num_rendered, 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フォーマットの指定 [詳解]
 

詳解

マクロ定義詳解

◆ CRIATOMPLAYER_NO_LOOP_LIMITATION

#define CRIATOMPLAYER_NO_LOOP_LIMITATION   (-1)

ループ回数制御用

説明:
ループ回数制限なし

◆ criAtomPlayer_SetDefaultConfigForStandardPlayer

#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_FALSE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
(p_config)->context = NULL;\
}

CriAtomStandardPlayerConfigへのデフォルトパラメーターのセット

引数
[out]p_config標準プレーヤー作成用コンフィグ構造体へのポインタ
説明:
criAtomPlayer_CreateStandardPlayer 関数に設定するコンフィグ構造体 ( CriAtomStandardPlayerConfig )に、デフォルトの値をセットします。
参照
CriAtomStandardPlayerConfig, criAtomPlayer_CreateStandardPlayer

◆ criAtomPlayer_SetDefaultConfigForAdxPlayer

#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_FALSE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
(p_config)->context = NULL;\
}

CriAtomAdxPlayerConfigへのデフォルトパラメーターのセット

引数
[out]p_configADXプレーヤー作成用コンフィグ構造体へのポインタ
説明:
criAtomPlayer_CreateAdxPlayer 関数に設定するコンフィグ構造体 ( CriAtomAdxPlayerConfig )に、デフォルトの値をセットします。
参照
CriAtomAdxPlayerConfig, criAtomPlayer_CreateAdxPlayer

◆ criAtomPlayer_SetDefaultConfigForHcaPlayer

#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_FALSE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
(p_config)->context = NULL;\
}

CriAtomHcaPlayerConfigへのデフォルトパラメーターのセット

引数
[out]p_configHCAプレーヤー作成用コンフィグ構造体へのポインタ
説明:
criAtomPlayer_CreateHcaPlayer 関数に設定するコンフィグ構造体 ( CriAtomHcaPlayerConfig )に、デフォルトの値をセットします。
参照
CriAtomHcaPlayerConfig, criAtomPlayer_CreateHcaPlayer

◆ criAtomPlayer_SetDefaultConfigForHcaMxPlayer

#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_FALSE;\
}

CriAtomHcaMxPlayerConfigへのデフォルトパラメーターのセット

引数
[out]p_configHCA-MXプレーヤー作成用コンフィグ構造体へのポインタ
説明:
criAtomPlayer_CreateHcaMxPlayer 関数に設定するコンフィグ構造体 ( CriAtomHcaMxPlayerConfig )に、デフォルトの値をセットします。
参照
CriAtomHcaMxPlayerConfig, criAtomPlayer_CreateHcaMxPlayer

◆ criAtomPlayer_SetDefaultConfigForWavePlayer

#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_FALSE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
(p_config)->context = NULL;\
}

CriAtomWavePlayerConfigへのデフォルトパラメーターのセット

引数
[out]p_configWAVEプレーヤー作成用コンフィグ構造体へのポインタ
説明:
criAtomPlayer_CreateWavePlayer 関数に設定するコンフィグ構造体 ( CriAtomWavePlayerConfig )に、デフォルトの値をセットします。
参照
CriAtomWavePlayerConfig, criAtomPlayer_CreateWavePlayer

◆ criAtomPlayer_SetDefaultConfigForAiffPlayer

#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_FALSE;\
(p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
(p_config)->decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
(p_config)->context = NULL;\
}

CriAtomAiffPlayerConfigへのデフォルトパラメーターのセット

引数
[out]p_configAIFFプレーヤー作成用コンフィグ構造体へのポインタ
説明:
criAtomPlayer_CreateAiffPlayer 関数に設定するコンフィグ構造体 ( CriAtomAiffPlayerConfig )に、デフォルトの値をセットします。
参照
CriAtomAiffPlayerConfig, criAtomPlayer_CreateAiffPlayer

◆ criAtomPlayer_SetDefaultConfigForRawPcmPlayer

#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;\
(p_config)->context = NULL;\
}

CriAtomRawPcmPlayerConfigへのデフォルトパラメーターのセット

引数
[out]p_configRawPCMプレーヤー作成用コンフィグ構造体へのポインタ
説明:
criAtomPlayer_CreateRawPcmPlayer 関数に設定するコンフィグ構造体 ( CriAtomRawPcmPlayerConfig )に、デフォルトの値をセットします。
参照
CriAtomRawPcmPlayerConfig, criAtomPlayer_CreateRawPcmPlayer

◆ criAtomPlayer_SetDefaultConfigForInstrumentPlayer

#define criAtomPlayer_SetDefaultConfigForInstrumentPlayer (   p_config)
値:
{\
(p_config)->interface_name = "";\
(p_config)->instrument_name = "";\
(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;\
}

CriAtomInstrumentPlayerConfigへデフォルトパラメーターのセット

引数
[out]p_configインストゥルメントプレーヤー作成用コンフィグ構造体へのポインタ
説明:
criAtomPlayer_CreateRawPcmPlayer 関数に設定するコンフィグ構造体 ( CriAtomRawPcmPlayerConfig )に、デフォルトの値をセットします。
参照
criAtomExVoicePool_AllocateInstrumentVoicePool

型定義詳解

◆ CriAtomParameterId

パラメーターID

説明:
パラメーターを指定するためのIDです。

◆ CriAtomStandardPlayerConfig

標準プレーヤー作成用コンフィグ構造体

説明:
標準プレーヤー(ADXとHCAが再生可能なプレーヤー)を作成する際に、 動作仕様を指定するための構造体です。
criAtomPlayer_CreateStandardPlayer 関数の引数に指定します。

作成されるプレーヤーは、ハンドル作成時に本構造体で指定された設定に応じて、 内部リソースを必要なだけ確保します。
プレーヤーが必要とするワーク領域のサイズは、本構造体で指定されたパラメーターに応じて変化します。
注意
将来的にメンバが増える可能性があるため、 criAtomPlayer_SetDefaultConfigForStandardPlayer マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照
criAtomPlayer_CreateStandardPlayer, criAtomPlayer_SetDefaultConfigForStandardPlayer

◆ CriAtomAdxPlayerConfig

ADXプレーヤー作成用コンフィグ構造体

説明:
ADXが再生可能なプレーヤーを作成する際に、動作仕様を指定するための構造体です。
criAtomPlayer_CreateAdxPlayer 関数の引数に指定します。

作成されるプレーヤーは、ハンドル作成時に本構造体で指定された設定に応じて、 内部リソースを必要なだけ確保します。
プレーヤーが必要とするワーク領域のサイズは、本構造体で指定されたパラメーターに応じて変化します。
注意
将来的にメンバが増える可能性があるため、 criAtomPlayer_SetDefaultConfigForAdxPlayer マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照
criAtomPlayer_CreateAdxPlayer, criAtomPlayer_SetDefaultConfigForAdxPlayer

◆ CriAtomHcaPlayerConfig

HCAプレーヤー作成用コンフィグ構造体

説明:
HCAが再生可能なプレーヤーを作成する際に、動作仕様を指定するための構造体です。
criAtomPlayer_CreateHcaPlayer 関数の引数に指定します。

作成されるプレーヤーは、ハンドル作成時に本構造体で指定された設定に応じて、 内部リソースを必要なだけ確保します。
プレーヤーが必要とするワーク領域のサイズは、本構造体で指定されたパラメーターに応じて変化します。
注意
将来的にメンバが増える可能性があるため、 criAtomPlayer_SetDefaultConfigForHcaPlayer マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照
criAtomPlayer_CreateHcaPlayer, criAtomPlayer_SetDefaultConfigForHcaPlayer

◆ CriAtomHcaMxPlayerConfig

HCA-MXプレーヤー作成用コンフィグ構造体

説明:
HCA-MXが再生可能なプレーヤーを作成する際に、動作仕様を指定するための構造体です。
criAtomPlayer_CreateHcaMxPlayer 関数の引数に指定します。

作成されるプレーヤーは、ハンドル作成時に本構造体で指定された設定に応じて、 内部リソースを必要なだけ確保します。
プレーヤーが必要とするワーク領域のサイズは、本構造体で指定されたパラメーターに応じて変化します。
注意
将来的にメンバが増える可能性があるため、 criAtomPlayer_SetDefaultConfigForHcaMxPlayer マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照
criAtomPlayer_CreateHcaMxPlayer, criAtomPlayer_SetDefaultConfigForHcaMxPlayer

◆ CriAtomWavePlayerConfig

WAVEプレーヤー作成用コンフィグ構造体

説明:
WAVEが再生可能なプレーヤーを作成する際に、動作仕様を指定するための構造体です。
criAtomPlayer_CreateWavePlayer 関数の引数に指定します。

作成されるプレーヤーは、ハンドル作成時に本構造体で指定された設定に応じて、 内部リソースを必要なだけ確保します。
プレーヤーが必要とするワーク領域のサイズは、本構造体で指定されたパラメーターに応じて変化します。
注意
将来的にメンバが増える可能性があるため、 criAtomPlayer_SetDefaultConfigForWavePlayer マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照
criAtomPlayer_CreateWavePlayer, criAtomPlayer_SetDefaultConfigForWavePlayer

◆ CriAtomAiffPlayerConfig

AIFFプレーヤー作成用コンフィグ構造体

説明:
AIFFが再生可能なプレーヤーを作成する際に、動作仕様を指定するための構造体です。
criAtomPlayer_CreateAiffPlayer 関数の引数に指定します。

作成されるプレーヤーは、ハンドル作成時に本構造体で指定された設定に応じて、 内部リソースを必要なだけ確保します。
プレーヤーが必要とするワーク領域のサイズは、本構造体で指定されたパラメーターに応じて変化します。
注意
将来的にメンバが増える可能性があるため、 criAtomPlayer_SetDefaultConfigForAiffPlayer マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照
criAtomPlayer_CreateAiffPlayer, criAtomPlayer_SetDefaultConfigForAiffPlayer

◆ CriAtomRawPcmPlayerConfig

RawPCMプレーヤー作成用コンフィグ構造体

説明:
RawPCMが再生可能なプレーヤーを作成する際に、動作仕様を指定するための構造体です。
criAtomPlayer_CreateRawPcmPlayer 関数の引数に指定します。

作成されるプレーヤーは、ハンドル作成時に本構造体で指定された設定に応じて、 内部リソースを必要なだけ確保します。
プレーヤーが必要とするワーク領域のサイズは、本構造体で指定されたパラメーターに応じて変化します。
注意
将来的にメンバが増える可能性があるため、 criAtomPlayer_SetDefaultConfigForRawPcmPlayer マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照
criAtomPlayer_CreateRawPcmPlayer, criAtomPlayer_SetDefaultConfigForRawPcmPlayer

◆ CriAtomInstrumentPlayerConfig

インストゥルメントプレーヤー作成用コンフィグ構造体

説明:
インストゥルメントが再生可能なプレーヤーを作成する際に、動作仕様を指定するための構造体です。

作成されるプレーヤーは、ハンドル作成時に本構造体で指定された設定に応じて、 内部リソースを必要なだけ確保します。
プレーヤーが必要とするワーク領域のサイズは、本構造体で指定されたパラメーターに応じて変化します。
注意
将来的にメンバが増える可能性があるため、 criAtomPlayer_SetDefaultConfigForInstrumentPlayer マクロを使用しない場合には、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)

◆ CriAtomPlayerStatus

再生ステータス

説明:
Atomプレーヤーの再生状態を示す値です。
criAtomPlayer_GetStatus 関数で取得可能です。
再生状態は、通常以下の順序で遷移します。
  1. CRIATOMPLAYER_STATUS_STOP
  2. CRIATOMPLAYER_STATUS_PREP
  3. CRIATOMPLAYER_STATUS_PLAYING
  4. CRIATOMPLAYER_STATUS_PLAYEND

Atomプレーヤー作成直後の状態は、停止状態( CRIATOMPLAYER_STATUS_STOP )です。
criAtomPlayer_SetData 関数等でデータをセットし、 criAtomPlayer_Start 関数を 実行すると、再生準備状態( CRIATOMPLAYER_STATUS_PREP )に遷移し、再生準備を始めます。
データが充分供給され、再生準備が整うと、ステータスは再生中( CRIATOMPLAYER_STATUS_PLAYING ) に変わり、音声を出力が開始されます。
セットされたデータを全て再生し終えた時点で、ステータスは再生完了 ( CRIATOMPLAYER_STATUS_PLAYEND )に変わります。

備考
再生中に criAtomPlayer_Stop 関数を実行した場合、上記の流れに関係なく、 最終的にステータスは CRIATOMPLAYER_STATUS_STOP に戻ります。
criAtomPlayer_Stop 関数の呼び出しタイミングによっては、 CRIATOMPLAYER_STATUS_STOP に遷移するまでに時間がかかる場合があります。)
また、再生中に不正なデータを読み込んだ場合や、ファイルアクセスに失敗した場合も、 上記の流れに関係なく、ステータスは CRIATOMPLAYER_STATUS_ERROR に遷移します。
注意
ステータスが CRIATOMPLAYER_STATUS_PREP や CRIATOMPLAYER_STATUS_PLAYING のタイミングでは、 データのセット( criAtomPlayer_SetData 関数)や、再生の開始( criAtomPlayer_Start 関数) は行えません。
現在再生中のAtomプレーヤーを停止して別のデータを再生したい場合は、一旦 criAtomPlayer_Stop 関数で再生を停止させ、ステータスが CRIATOMPLAYER_STATUS_STOP に遷移してから次のデータを セット/再生する必要があります。
参照
criAtomPlayer_GetStatus, criAtomPlayer_SetData, criAtomPlayer_Start, criAtomPlayer_Stop

◆ CriAtomPlayerHn

typedef struct CriAtomPlayerTag* CriAtomPlayerHn

Atomプレーヤーハンドル

説明:
CriAtomPlayerHn は、音声再生用に作られたプレーヤーを操作するためのハンドルです。
criAtomPlayer_CreateAdxPlayer 関数等で音声再生用のプレーヤーを作成すると、 関数はプレーヤー操作用に、この"Atomプレーヤーハンドル"を返します。
Atomプレーヤーとは、コーデックに依存しない再生制御のためのインターフェースを提供する、 抽象化されたプレーヤーオブジェクトです。
Atomプレーヤーの作成方法は再生する音声コーデックにより異なりますが、 作成されたプレーヤーの制御については、Atomプレーヤー用のAPIが共通で利用可能です。
データのセットや再生の開始、ステータスの取得等、プレーヤーに対して行う操作は、 全てAtomプレーヤーハンドルを介して実行されます。
参照
criAtomPlayer_CreateAdxPlayer

◆ CriAtomPlayerDataRequestCbFunc

typedef void(CRIAPI * CriAtomPlayerDataRequestCbFunc) (void *obj, CriAtomPlayerHn player)

データ要求コールバック関数

説明:
引数
[in]objユーザ指定オブジェクト
[in]playerAtomプレーヤーハンドル
戻り値
なし
説明:
次に再生するデータを指定するためのコールバック関数です。
複数の音声データをシームレスに連結して再生する際に使用します。

コールバック関数の登録には criAtomPlayer_SetDataRequestCallback 関数を使用します。
登録したコールバック関数は、Atomプレーヤーが連結再生用のデータを要求するタイミングで 実行されます。
(前回のデータを読み込み終えて、次に再生すべきデータを要求するタイミングで コールバック関数が実行されます。) 本関数内で criAtomPlayer_SetData 関数等を用いてAtomプレーヤーにデータをセットすると、 セットされたデータは現在再生中のデータに続いてシームレスに連結されて再生されます。
また、本関数内で criAtomPlayer_SetPreviousDataAgain 関数を実行することで、 同一データを繰り返し再生し続けることも可能です。
備考:
本関数内でデータを指定しなかった場合、現在のデータを再生し終えた時点で、 Atomプレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYEND に遷移します。

タイミング等の問題により、データを指定することができないが、ステータスを CRIATOMPLAYER_STATUS_PLAYEND に遷移させたくない場合には、コールバック関数内で criAtomPlayer_DeferCallback 関数を実行してください。
criAtomPlayer_DeferCallback 関数を実行することで、約1V後に再度データ要求 コールバック関数が呼び出されます。(コールバック処理をリトライ可能。)
ただし、 criAtomPlayer_DeferCallback 関数を実行した場合、再生が途切れる (連結箇所に一定時間無音が入る)可能性があります。
注意
本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。
参照
criAtomPlayer_SetDataRequestCallback, criAtomPlayer_SetData, criAtomPlayer_SetPreviousDataAgain, criAtomPlayer_DeferCallback

◆ CriAtomPlayerStatusChangeCbFunc

typedef void(CRIAPI * CriAtomPlayerStatusChangeCbFunc) (void *obj, CriAtomPlayerHn player)

ステータス変更コールバック関数

説明:
引数
[in]objユーザ指定オブジェクト
[in]playerAtomプレーヤーハンドル
戻り値
なし
説明:
Atomプレーヤーのステータスが変更されるタイミングで実行されるコールバック関数です。

コールバック関数の登録には criAtomPlayer_SetStatusChangeCallback 関数を使用します。
登録したコールバック関数は、Atomプレーヤーのステータスが更新されるタイミングで 実行されます。
変更されたステータスについては、引数で渡されるAtomプレーヤーハンドル(player)に対し、 criAtomPlayer_GetStatus 関数を実行することで取得可能です。
備考:
厳密には、ステータス遷移〜コールバック関数実行までの間に他の処理が割り込みで動作する 余地があるため、ステータス遷移とコールバック関数実行のタイミングがズレる可能性があります。
注意
本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。
参照
criAtomPlayer_SetStatusChangeCallback, criAtomPlayer_GetStatus

◆ CriAtomPlayerParameterChangeCbFunc

typedef void(CRIAPI * CriAtomPlayerParameterChangeCbFunc) (void *obj, CriAtomPlayerHn player, CriAtomParameterId id, CriFloat32 value)

パラメーター変更コールバック関数

説明:
引数
[in]objユーザ指定オブジェクト
[in]playerAtomプレーヤーハンドル
[in]idパラメーターID
[in]valueパラメーター値
戻り値
なし
説明:
Atomプレーヤーのパラメーターが変更されるタイミングで実行されるコールバック関数です。

コールバック関数の登録には criAtomPlayer_SetParameterChangeCallback 関数を使用します。
登録したコールバック関数は、Atomプレーヤーのパラメーターが更新されるタイミングで実行されます。
注意
本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。
参照
criAtomPlayer_SetParameterChangeCallback

◆ CriAtomPlayerFilterCbFunc

typedef void(CRIAPI * CriAtomPlayerFilterCbFunc) (void *obj, CriAtomPcmFormat format, CriSint32 num_channels, CriSint32 num_samples, void *data[])

波形フィルターコールバック関数

説明:
引数
[in]objユーザ指定オブジェクト
[in]formatPCMの形式
[in]num_channelsチャンネル数
[in]num_samplesサンプル数
[in,out]dataPCMデータのチャンネル配列
戻り値
なし
説明:
デコード結果の PCM データを受け取るコールバック関数です。

コールバック関数の登録には criAtomPlayer_SetFilterCallback 関数を使用します。
コールバック関数を登録すると、 Atom プレーヤーが音声データをデコードする度に、 コールバック関数が実行されるようになります。

フィルターコールバック関数には、 PCM データのフォーマットやチャンネル数、 参照可能なサンプル数、 PCM データを格納した領域のアドレスが返されます。
コールバック内では PCM データの値を直接参照可能になるので、 再生中の音声の振幅をチェックするといった用途に利用可能です。

また、コールバック関数内で PCM データを加工すると、再生音に反映されるため、 PCM データに対してユーザ独自のエフェクトをかけることも可能です。
(ただし、タイムストレッチ処理のようなデータ量が増減する加工を行うことはできません。)
備考:
PCM データはチャンネル単位で分離されています。
(インターリーブされていません。)
第 6 引数( data 配列)には、各チャンネルの PCM データ配列の先頭アドレスが格納されています。
(二次元配列の先頭アドレスではなく、チャンネルごとの PCM データ配列の先頭アドレスを格納した 一次元のポインタ配列です。)

プラットフォームによって、 PCM データのフォーマットは異なります。
実行環境のデータフォーマットについては、第 3 引数( format )で判別可能です。
PCM データのフォーマットが 16 bit 整数型の場合、 format は CRIATOM_PCM_FORMAT_SINT16 となり、 PCM データのフォーマットが 32 bit 浮動小数点数型の場合、 format は CRIATOM_PCM_FORMAT_FLOAT32 となります。
それぞれのケースで PCM データの値域は異なりますのでご注意ください。
  • CRIATOM_PCM_FORMAT_SINT16 時は -32768 〜 +32767
  • CRIATOM_PCM_FORMAT_FLOAT32 時は -1.0f 〜 +1.0f

(デコード時点ではクリッピングが行われていないため、 CRIATOM_PCM_FORMAT_FLOAT32 時は上記範囲をわずかに超えた値が出る可能性があります。)

注意
コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生する可能性があります。
参照
criAtomPlayer_SetFilterCallback

◆ CriAtomPlayerLoadRequestCbFunc

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ロード要求サイズ
戻り値
なし
説明:
Atomプレーヤーのファイルロード状態を監視するための、デバッグ用のコールバック関数です。
コールバック関数の登録には criAtomPlayer_SetLoadRequestCallback 関数を使用します。

登録したコールバック関数は、Atomプレーヤーが音声データのロード要求を発行するタイミングで実行されます。
備考:
注意
本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。
参照
criAtomPlayer_SetLoadRequestCallback

◆ CriAtomStreamingCacheConfig

ストリーミングキャッシュ作成用コンフィグ構造体

説明:
プレーヤーにストリーミングキャッシュを作成する際に、 キャッシュ可能なファイルサイズ等を登録するための構造体です。
criAtomStreamingCache_CalculateWorkSize 関数、 criAtomStreamingCache_Create 関数の引数に指定します。

注意
将来的にメンバが増える可能性があるため、使用前に必ず構造体をゼロクリアしてください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照
criAtomStreamingCache_CalculateWorkSize, criAtomStreamingCache_Create

列挙型詳解

◆ CriAtomParameterIdTag

パラメーターID

説明:
パラメーターを指定するためのIDです。
列挙値
CRIATOM_PARAMETER_ID_VOLUME 

ボリューム

CRIATOM_PARAMETER_ID_FREQUENCY_RATIO 

周波数比

◆ CriAtomPlayerStatusTag

再生ステータス

説明:
Atomプレーヤーの再生状態を示す値です。
criAtomPlayer_GetStatus 関数で取得可能です。
再生状態は、通常以下の順序で遷移します。
  1. CRIATOMPLAYER_STATUS_STOP
  2. CRIATOMPLAYER_STATUS_PREP
  3. CRIATOMPLAYER_STATUS_PLAYING
  4. CRIATOMPLAYER_STATUS_PLAYEND

Atomプレーヤー作成直後の状態は、停止状態( CRIATOMPLAYER_STATUS_STOP )です。
criAtomPlayer_SetData 関数等でデータをセットし、 criAtomPlayer_Start 関数を 実行すると、再生準備状態( CRIATOMPLAYER_STATUS_PREP )に遷移し、再生準備を始めます。
データが充分供給され、再生準備が整うと、ステータスは再生中( CRIATOMPLAYER_STATUS_PLAYING ) に変わり、音声を出力が開始されます。
セットされたデータを全て再生し終えた時点で、ステータスは再生完了 ( CRIATOMPLAYER_STATUS_PLAYEND )に変わります。

備考
再生中に criAtomPlayer_Stop 関数を実行した場合、上記の流れに関係なく、 最終的にステータスは CRIATOMPLAYER_STATUS_STOP に戻ります。
criAtomPlayer_Stop 関数の呼び出しタイミングによっては、 CRIATOMPLAYER_STATUS_STOP に遷移するまでに時間がかかる場合があります。)
また、再生中に不正なデータを読み込んだ場合や、ファイルアクセスに失敗した場合も、 上記の流れに関係なく、ステータスは CRIATOMPLAYER_STATUS_ERROR に遷移します。
注意
ステータスが CRIATOMPLAYER_STATUS_PREP や CRIATOMPLAYER_STATUS_PLAYING のタイミングでは、 データのセット( criAtomPlayer_SetData 関数)や、再生の開始( criAtomPlayer_Start 関数) は行えません。
現在再生中のAtomプレーヤーを停止して別のデータを再生したい場合は、一旦 criAtomPlayer_Stop 関数で再生を停止させ、ステータスが CRIATOMPLAYER_STATUS_STOP に遷移してから次のデータを セット/再生する必要があります。
参照
criAtomPlayer_GetStatus, criAtomPlayer_SetData, criAtomPlayer_Start, criAtomPlayer_Stop
列挙値
CRIATOMPLAYER_STATUS_STOP 

停止中

CRIATOMPLAYER_STATUS_PREP 

再生準備中

CRIATOMPLAYER_STATUS_PLAYING 

再生中

CRIATOMPLAYER_STATUS_PLAYEND 

再生完了

CRIATOMPLAYER_STATUS_ERROR 

エラーが発生

関数詳解

◆ criAtomPlayer_CalculateWorkSizeForStandardPlayer()

CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForStandardPlayer ( const CriAtomStandardPlayerConfig config)

標準プレーヤー作成用ワーク領域サイズの計算

引数
[in]config標準プレーヤー作成用コンフィグ構造体
戻り値
CriSint32 ワーク領域サイズ
戻り値
0以上正常に処理が完了
-1エラーが発生
説明:
標準プレーヤー(ADXとHCAを再生可能なプレーヤー)を作成するために必要な、 ワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
プレーヤーの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomStandardPlayerConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomPlayer_SetDefaultConfigForStandardPlayer 適用時と同じパラメーター) でワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
ワーク領域のサイズはライブラリ初期化時( criAtom_Initialize 関数実行時) に指定したパラメーターによって変化します。
そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
参照
CriAtomStandardPlayerConfig, criAtomPlayer_CreateStandardPlayer

◆ criAtomPlayer_CreateStandardPlayer()

CriAtomPlayerHn CRIAPI criAtomPlayer_CreateStandardPlayer ( const CriAtomStandardPlayerConfig config,
void *  work,
CriSint32  work_size 
)

標準プレーヤーの作成

引数
[in]config標準プレーヤー作成用コンフィグ構造体
[in]workワーク領域
[in]work_sizeワーク領域サイズ
戻り値
CriAtomPlayerHn Atomプレーヤーハンドル
説明:
ADXとHCAが再生可能なプレーヤーを作成します。
本関数で作成されたAtomプレーヤーには、ADXデータとHCAデータのデコード機能が付加されています。

作成されたプレーヤーで再生できる音声のフォーマットは、第一引数(config)に指定した パラメーターによって決まります。
例えば、configのmax_sampling_rateに24000を設定した場合、作成されたプレーヤーでは 24kHzを超えるサンプリングレートの音声データは再生できなくなります。
configにNULLを指定した場合、デフォルト設定( criAtomPlayer_SetDefaultConfigForStandardPlayer 適用時と同じパラメーター)でプレーヤーを作成します。
プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。

User Allocator方式を用いる場合、ユーザがワーク領域を用意する必要はありません。
workにNULL、work_sizeに0を指定するだけで、必要なメモリを登録済みのメモリ確保関数から確保します。
標準プレーヤー作成時に確保されたメモリは、標準プレーヤー破棄時( criAtomPlayer_Destroy 関数実行時)に解放されます。

Fixed Memory方式を用いる場合、ワーク領域として別途確保済みのメモリ領域を本関数に 設定する必要があります。
ワーク領域のサイズは criAtomPlayer_CalculateWorkSizeForStandardPlayer 関数で取得可能です。
標準プレーヤー作成前に criAtomPlayer_CalculateWorkSizeForStandardPlayer 関数で取得した サイズ分のメモリを予め確保しておき、本関数に設定してください。
尚、Fixed Memory方式を用いた場合、ワーク領域は標準プレーヤーの破棄 ( criAtomPlayer_Destroy 関数)を行うまでの間、ライブラリ内で利用され続けます。
標準プレーヤーの破棄を行う前に、ワーク領域のメモリを解放しないでください。
例:
【User Allocator方式による標準プレーヤーの作成】
User Allocator方式を用いる場合、標準プレーヤーの作成/破棄の手順は以下のようになります。
  1. 標準プレーヤー作成前に、 criAtom_SetUserMallocFunction 関数と criAtom_SetUserFreeFunction 関数を用いてメモリ確保/解放関数を登録する。
  2. 標準プレーヤー作成用コンフィグ構造体にパラメーターをセットする。
  3. criAtomPlayer_CreateStandardPlayer 関数で標準プレーヤーを作成する。
    (workにはNULL、work_sizeには0を指定する。)
  4. ハンドルが不要になったら criAtomPlayer_Destroy 関数で標準プレーヤーを破棄する。


具体的なコードは以下のとおりです。

// 独自のメモリ確保関数
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);
:
// 音声再生処理
:
// 標準プレーヤーが不要になった時点で破棄
// →標準プレーヤー作成時にライブラリ内で確保されたメモリが解放される。
:
}
void CRIAPI criAtom_SetUserFreeFunction(CriAtomFreeFunc func, void *obj)
メモリ解放関数の登録
void CRIAPI criAtom_SetUserMallocFunction(CriAtomMallocFunc func, void *obj)
メモリ確保関数の登録
CriAtomPlayerHn CRIAPI criAtomPlayer_CreateStandardPlayer(const CriAtomStandardPlayerConfig *config, void *work, CriSint32 work_size)
標準プレーヤーの作成
struct CriAtomPlayerTag * CriAtomPlayerHn
Atomプレーヤーハンドル
Definition: cri_atom.h:2349
void CRIAPI criAtomPlayer_Destroy(CriAtomPlayerHn player)
Atomプレーヤーの破棄
Definition: cri_atom.h:1414
CriSint32 max_sampling_rate
最大サンプリングレート
Definition: cri_atom.h:1475
CriSint32 max_channels
Definition: cri_atom.h:1457

※ライブラリ初期化時にメモリ確保/解放関数を登録済みの場合、標準プレーヤー作成時 に再度関数を登録する必要はありません。

【Fixed Memory方式による標準プレーヤーの作成】
Fixed Memory方式を用いる場合、標準プレーヤーの作成/破棄の手順は以下のようになります。

  1. 標準プレーヤー作成用コンフィグ構造体にパラメーターをセットする。
  2. 標準プレーヤーの作成に必要なワーク領域のサイズを、 criAtomPlayer_CalculateWorkSizeForStandardPlayer 関数を使って計算する。
  3. ワーク領域サイズ分のメモリを確保する。
  4. criAtomPlayer_CreateStandardPlayer 関数で標準プレーヤーを作成する。
    (workには確保したメモリのアドレスを、work_sizeにはワーク領域のサイズを指定する。)
  5. ハンドルが不要になったら criAtomPlayer_Destroy 関数で標準プレーヤーを破棄する。
  6. ワーク領域のメモリを解放する。


具体的なコードは以下のとおりです。

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 = malloc((size_t)work_size);
// 標準プレーヤーの作成
// ワーク領域にはNULLと0を指定する。
// →確保済みのワーク領域を指定する。
player = criAtomPlayer_CreateStandardPlayer(&config, work, work_size);
:
// 音声再生処理
// →この間、確保したメモリは保持し続ける。
:
// 標準プレーヤーが不要になった時点で破棄
// 必要なくなったワーク領域を解放する
free(work);
:
}
CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForStandardPlayer(const CriAtomStandardPlayerConfig *config)
標準プレーヤー作成用ワーク領域サイズの計算

criAtomPlayer_CreateStandardPlayer 関数を実行すると、Atomプレーヤーが作成され、 プレーヤーを制御するためのハンドル( CriAtomPlayerHn )が返されます。
データのセット、再生の開始、ステータスの取得等、Atomプレーヤーに対して 行う操作は、全てハンドルに対して行います。

作成されたAtomプレーヤーハンドルを使用して音声データを再生する手順は以下のとおりです。

  1. criAtomPlayer_SetData 関数を使用して、Atomプレーヤーに再生するデータをセットする。
    (ファイル再生時は、 criAtomPlayer_SetFile 関数または criAtomPlayer_SetContentId 関数を使用する。)
  2. criAtomPlayer_Start 関数で再生を開始する。
    備考:
    引数 config の情報は、関数内でのみ参照されます。
    関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
    注意
    本関数を実行する前に、ライブラリを初期化しておく必要があります。

    ストリーム再生用のAtomプレーヤーは、内部的にローダー( CriFsLoaderHn )を確保します。
    ストリーム再生用のAtomプレーヤーを作成する場合、プレーヤーハンドル数分のローダーが確保 できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。

    本関数は完了復帰型の関数です。
    標準プレーヤーの作成にかかる時間は、プラットフォームによって異なります。
    ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
    標準プレーヤーの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
    参照
    CriAtomStandardPlayerConfig, criAtomPlayer_CalculateWorkSizeForStandardPlayer, CriAtomPlayerHn, criAtomPlayer_Destroy, criAtomPlayer_SetData, criAtomPlayer_SetFile, criAtomPlayer_SetContentId, criAtomPlayer_Start, criAtomPlayer_CreateStandardPlayer

◆ criAtomPlayer_CalculateWorkSizeForAdxPlayer()

CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForAdxPlayer ( const CriAtomAdxPlayerConfig config)

ADXプレーヤー作成用ワーク領域サイズの計算

引数
[in]configADXプレーヤー作成用コンフィグ構造体
戻り値
CriSint32 ワーク領域サイズ
戻り値
0以上正常に処理が完了
-1エラーが発生
説明:
ADX再生用プレーヤーを作成するために必要な、ワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
プレーヤーの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomAdxPlayerConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomPlayer_SetDefaultConfigForAdxPlayer 適用時と同じパラメーター)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
ワーク領域のサイズはライブラリ初期化時( criAtom_Initialize 関数実行時) に指定したパラメーターによって変化します。
そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
参照
CriAtomAdxPlayerConfig, criAtomPlayer_CreateAdxPlayer

◆ criAtomPlayer_CreateAdxPlayer()

CriAtomPlayerHn CRIAPI criAtomPlayer_CreateAdxPlayer ( const CriAtomAdxPlayerConfig config,
void *  work,
CriSint32  work_size 
)

ADXプレーヤーの作成

引数
[in]configADXプレーヤー作成用コンフィグ構造体
[in]workワーク領域
[in]work_sizeワーク領域サイズ
戻り値
CriAtomPlayerHn Atomプレーヤーハンドル
説明:
ADXが再生可能なプレーヤーを作成します。
本関数で作成されたAtomプレーヤーには、ADXデータのデコード機能が付加されています。

作成されたプレーヤーで再生できる音声のフォーマットは、第一引数(config)に指定した パラメーターによって決まります。
例えば、configのmax_sampling_rateに24000を設定した場合、作成されたプレーヤーでは 24kHzを超えるサンプリングレートの音声データは再生できなくなります。
configにNULLを指定した場合、デフォルト設定( criAtomPlayer_SetDefaultConfigForAdxPlayer 適用時と同じパラメーター)でプレーヤーを作成します。
プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。

User Allocator方式を用いる場合、ユーザがワーク領域を用意する必要はありません。
workにNULL、work_sizeに0を指定するだけで、必要なメモリを登録済みのメモリ確保関数から確保します。
ADXプレーヤー作成時に確保されたメモリは、ADXプレーヤー破棄時( criAtomPlayer_Destroy 関数実行時)に解放されます。

Fixed Memory方式を用いる場合、ワーク領域として別途確保済みのメモリ領域を本関数に 設定する必要があります。
ワーク領域のサイズは criAtomPlayer_CalculateWorkSizeForAdxPlayer 関数で取得可能です。
ADXプレーヤー作成前に criAtomPlayer_CalculateWorkSizeForAdxPlayer 関数で取得した サイズ分のメモリを予め確保しておき、本関数に設定してください。
尚、Fixed Memory方式を用いた場合、ワーク領域はADXプレーヤーの破棄 ( criAtomPlayer_Destroy 関数)を行うまでの間、ライブラリ内で利用され続けます。
ADXプレーヤーの破棄を行う前に、ワーク領域のメモリを解放しないでください。
例:
【User Allocator方式によるADXプレーヤーの作成】
User Allocator方式を用いる場合、ADXプレーヤーの作成/破棄の手順は以下のようになります。
  1. ADXプレーヤー作成前に、 criAtom_SetUserMallocFunction 関数と criAtom_SetUserFreeFunction 関数を用いてメモリ確保/解放関数を登録する。
  2. ADXプレーヤー作成用コンフィグ構造体にパラメーターをセットする。
  3. criAtomPlayer_CreateAdxPlayer 関数でADXプレーヤーを作成する。
    (workにはNULL、work_sizeには0を指定する。)
  4. ハンドルが不要になったら criAtomPlayer_Destroy 関数でADXプレーヤーを破棄する。


具体的なコードは以下のとおりです。

// 独自のメモリ確保関数
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プレーヤー作成時にライブラリ内で確保されたメモリが解放される。
:
}
CriAtomPlayerHn CRIAPI criAtomPlayer_CreateAdxPlayer(const CriAtomAdxPlayerConfig *config, void *work, CriSint32 work_size)
ADXプレーヤーの作成
Definition: cri_atom.h:1572
CriSint32 max_sampling_rate
最大サンプリングレート
Definition: cri_atom.h:1633
CriSint32 max_channels
Definition: cri_atom.h:1615

※ライブラリ初期化時にメモリ確保/解放関数を登録済みの場合、ADXプレーヤー作成時 に再度関数を登録する必要はありません。

【Fixed Memory方式によるADXプレーヤーの作成】
Fixed Memory方式を用いる場合、ADXプレーヤーの作成/破棄の手順は以下のようになります。

  1. ADXプレーヤー作成用コンフィグ構造体にパラメーターをセットする。
  2. ADXプレーヤーの作成に必要なワーク領域のサイズを、 criAtomPlayer_CalculateWorkSizeForAdxPlayer 関数を使って計算する。
  3. ワーク領域サイズ分のメモリを確保する。
  4. criAtomPlayer_CreateAdxPlayer 関数でADXプレーヤーを作成する。
    (workには確保したメモリのアドレスを、work_sizeにはワーク領域のサイズを指定する。)
  5. ハンドルが不要になったら criAtomPlayer_Destroy 関数でADXプレーヤーを破棄する。
  6. ワーク領域のメモリを解放する。


具体的なコードは以下のとおりです。

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 = malloc((size_t)work_size);
// ADXプレーヤーの作成
// ワーク領域にはNULLと0を指定する。
// →確保済みのワーク領域を指定する。
player = criAtomPlayer_CreateAdxPlayer(&config, work, work_size);
:
// 音声再生処理
// →この間、確保したメモリは保持し続ける。
:
// ADXプレーヤーが不要になった時点で破棄
// 必要なくなったワーク領域を解放する
free(work);
:
}
CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForAdxPlayer(const CriAtomAdxPlayerConfig *config)
ADXプレーヤー作成用ワーク領域サイズの計算

criAtomPlayer_CreateAdxPlayer 関数を実行すると、Atomプレーヤーが作成され、 プレーヤーを制御するためのハンドル( CriAtomPlayerHn )が返されます。
データやデコーダーのセット、再生の開始、ステータスの取得等、Atomプレーヤーに対して 行う操作は、全てハンドルに対して行います。

作成されたAtomプレーヤーハンドルを使用して音声データを再生する手順は以下のとおりです。

  1. criAtomPlayer_SetData 関数を使用して、Atomプレーヤーに再生するデータをセットする。
    (ファイル再生時は、 criAtomPlayer_SetFile 関数または criAtomPlayer_SetContentId 関数を使用する。)
  2. criAtomPlayer_Start 関数で再生を開始する。
    備考:
    引数 config の情報は、関数内でのみ参照されます。
    関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
    注意
    本関数を実行する前に、ライブラリを初期化しておく必要があります。

    ストリーム再生用のAtomプレーヤーは、内部的にローダー( CriFsLoaderHn )を確保します。
    ストリーム再生用のAtomプレーヤーを作成する場合、プレーヤーハンドル数分のローダーが確保 できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。

    本関数は完了復帰型の関数です。
    ADXプレーヤーの作成にかかる時間は、プラットフォームによって異なります。
    ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
    ADXプレーヤーの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
    参照
    CriAtomAdxPlayerConfig, criAtomPlayer_CalculateWorkSizeForAdxPlayer, CriAtomPlayerHn, criAtomPlayer_Destroy, criAtomPlayer_SetData, criAtomPlayer_SetFile, criAtomPlayer_SetContentId, criAtomPlayer_Start, criAtomPlayer_CreateAdxPlayer

◆ criAtomPlayer_CalculateWorkSizeForHcaPlayer()

CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForHcaPlayer ( const CriAtomHcaPlayerConfig config)

HCAプレーヤー作成用ワーク領域サイズの計算

引数
[in]configHCAプレーヤー作成用コンフィグ構造体
戻り値
CriSint32 ワーク領域サイズ
戻り値
0以上正常に処理が完了
-1エラーが発生
説明:
HCA再生用プレーヤーを作成するために必要な、ワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
プレーヤーの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomHcaPlayerConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomPlayer_SetDefaultConfigForHcaPlayer 適用時と同じパラメーター)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
ワーク領域のサイズはライブラリ初期化時( criAtom_Initialize 関数実行時) に指定したパラメーターによって変化します。
そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
参照
CriAtomHcaPlayerConfig, criAtomPlayer_CreateHcaPlayer

◆ criAtomPlayer_CreateHcaPlayer()

CriAtomPlayerHn CRIAPI criAtomPlayer_CreateHcaPlayer ( const CriAtomHcaPlayerConfig config,
void *  work,
CriSint32  work_size 
)

HCAプレーヤーの作成

引数
[in]configHCAプレーヤー作成用コンフィグ構造体
[in]workワーク領域
[in]work_sizeワーク領域サイズ
戻り値
CriAtomPlayerHn Atomプレーヤーハンドル
説明:
HCAが再生可能なプレーヤーを作成します。
本関数で作成されたAtomプレーヤーには、HCAデータのデコード機能が付加されています。

作成されたプレーヤーで再生できる音声のフォーマットは、第一引数(config)に指定した パラメーターによって決まります。
例えば、configのmax_sampling_rateに24000を設定した場合、作成されたプレーヤーでは 24kHzを超えるサンプリングレートの音声データは再生できなくなります。
configにNULLを指定した場合、デフォルト設定( criAtomPlayer_SetDefaultConfigForHcaPlayer 適用時と同じパラメーター)でプレーヤーを作成します。
プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。
各方式の詳細については、別途 criAtomPlayer_CreateAdxPlayer 関数の説明をご参照ください。

criAtomPlayer_CreateHcaPlayer 関数を実行すると、Atomプレーヤーが作成され、 プレーヤーを制御するためのハンドル( CriAtomPlayerHn )が返されます。
データやデコーダーのセット、再生の開始、ステータスの取得等、Atomプレーヤーに対して 行う操作は、全てハンドルに対して行います。

作成されたAtomプレーヤーハンドルを使用して音声データを再生する手順は以下のとおりです。
  1. criAtomPlayer_SetData 関数を使用して、Atomプレーヤーに再生するデータをセットする。
    (ファイル再生時は、 criAtomPlayer_SetFile 関数または criAtomPlayer_SetContentId 関数を使用する。)
  2. criAtomPlayer_Start 関数で再生を開始する。
備考:
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
本関数を実行する前に、ライブラリを初期化しておく必要があります。

ストリーム再生用のAtomプレーヤーは、内部的にローダー( CriFsLoaderHn )を確保します。
ストリーム再生用のAtomプレーヤーを作成する場合、プレーヤーハンドル数分のローダーが確保 できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。

本関数は完了復帰型の関数です。
HCAプレーヤーの作成にかかる時間は、プラットフォームによって異なります。
ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
HCAプレーヤーの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
参照
CriAtomHcaPlayerConfig, criAtomPlayer_CalculateWorkSizeForHcaPlayer, CriAtomPlayerHn, criAtomPlayer_Destroy, criAtomPlayer_SetData, criAtomPlayer_SetFile, criAtomPlayer_SetContentId, criAtomPlayer_Start, criAtomPlayer_CreateHcaPlayer

◆ criAtomPlayer_CalculateWorkSizeForHcaMxPlayer()

CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForHcaMxPlayer ( const CriAtomHcaMxPlayerConfig config)

HCA-MXプレーヤー作成用ワーク領域サイズの計算

引数
[in]configHCA-MXプレーヤー作成用コンフィグ構造体
戻り値
CriSint32 ワーク領域サイズ
戻り値
0以上正常に処理が完了
-1エラーが発生
説明:
HCA-MX再生用プレーヤーを作成するために必要な、ワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
プレーヤーの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomHcaMxPlayerConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomPlayer_SetDefaultConfigForHcaMxPlayer 適用時と同じパラメーター)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
ワーク領域のサイズはHCA-MX初期化時( criAtomHcaMx_Initialize 関数実行時) に指定したパラメーターによって変化します。
そのため、本関数を実行する前に、HCA-MXを初期化しておく必要があります。
参照
CriAtomHcaMxPlayerConfig, criAtomPlayer_CreateHcaMxPlayer

◆ criAtomPlayer_CreateHcaMxPlayer()

CriAtomPlayerHn CRIAPI criAtomPlayer_CreateHcaMxPlayer ( const CriAtomHcaMxPlayerConfig config,
void *  work,
CriSint32  work_size 
)

HCA-MXプレーヤーの作成

引数
[in]configHCA-MXプレーヤー作成用コンフィグ構造体
[in]workワーク領域
[in]work_sizeワーク領域サイズ
戻り値
CriAtomPlayerHn Atomプレーヤーハンドル
説明:
HCA-MXが再生可能なプレーヤーを作成します。
本関数で作成されたAtomプレーヤーには、HCA-MXデータのデコード機能が付加されています。

作成されたプレーヤーで再生できる音声のフォーマットは、第一引数(config)に指定した パラメーターによって決まります。
例えば、configのmax_sampling_rateに24000を設定した場合、作成されたプレーヤーでは 24kHzを超えるサンプリングレートの音声データは再生できなくなります。
configにNULLを指定した場合、デフォルト設定( criAtomPlayer_SetDefaultConfigForHcaMxPlayer 適用時と同じパラメーター)でプレーヤーを作成します。
プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。
各方式の詳細については、別途 criAtomPlayer_CreateAdxPlayer 関数の説明をご参照ください。

criAtomPlayer_CreateHcaMxPlayer 関数を実行すると、Atomプレーヤーが作成され、 プレーヤーを制御するためのハンドル( CriAtomPlayerHn )が返されます。
データやデコーダーのセット、再生の開始、ステータスの取得等、Atomプレーヤーに対して 行う操作は、全てハンドルに対して行います。

作成されたAtomプレーヤーハンドルを使用して音声データを再生する手順は以下のとおりです。
  1. criAtomPlayer_SetData 関数を使用して、Atomプレーヤーに再生するデータをセットする。
    (ファイル再生時は、 criAtomPlayer_SetFile 関数または criAtomPlayer_SetContentId 関数を使用する。)
  2. criAtomPlayer_Start 関数で再生を開始する。
備考:
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
ストリーム再生用のAtomプレーヤーは、内部的にローダー( CriFsLoaderHn )を確保します。
ストリーム再生用のAtomプレーヤーを作成する場合、プレーヤーハンドル数分のローダーが確保 できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。

本関数を実行する前に、HCA-MXを初期化しておく必要があります。

本関数は完了復帰型の関数です。
HCA-MXプレーヤーの作成にかかる時間は、プラットフォームによって異なります。
ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
HCA-MXプレーヤーの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
参照
CriAtomHcaMxPlayerConfig, criAtomPlayer_CalculateWorkSizeForHcaMxPlayer, CriAtomPlayerHn, criAtomPlayer_Destroy, criAtomPlayer_SetData, criAtomPlayer_SetFile, criAtomPlayer_SetContentId, criAtomPlayer_Start, criAtomPlayer_CreateHcaMxPlayer

◆ criAtomPlayer_CalculateWorkSizeForWavePlayer()

CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForWavePlayer ( const CriAtomWavePlayerConfig config)

WAVEプレーヤー作成用ワーク領域サイズの計算

引数
[in]configWAVEプレーヤー作成用コンフィグ構造体
戻り値
CriSint32 ワーク領域サイズ
戻り値
0以上正常に処理が完了
-1エラーが発生
説明:
WAVE再生用プレーヤーを作成するために必要な、ワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
プレーヤーの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomWavePlayerConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomPlayer_SetDefaultConfigForWavePlayer 適用時と同じパラメーター)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
ワーク領域のサイズはライブラリ初期化時( criAtom_Initialize 関数実行時) に指定したパラメーターによって変化します。
そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
参照
CriAtomWavePlayerConfig, criAtomPlayer_CreateWavePlayer

◆ criAtomPlayer_CreateWavePlayer()

CriAtomPlayerHn CRIAPI criAtomPlayer_CreateWavePlayer ( const CriAtomWavePlayerConfig config,
void *  work,
CriSint32  work_size 
)

WAVEプレーヤーの作成

引数
[in]configWAVEプレーヤー作成用コンフィグ構造体
[in]workワーク領域
[in]work_sizeワーク領域サイズ
戻り値
CriAtomPlayerHn Atomプレーヤーハンドル
説明:
WAVEが再生可能なプレーヤーを作成します。
本関数で作成されたAtomプレーヤーには、WAVEデータのデコード機能が付加されています。

作成されたプレーヤーで再生できる音声のフォーマットは、第一引数(config)に指定した パラメーターによって決まります。
例えば、configのmax_sampling_rateに24000を設定した場合、作成されたプレーヤーでは 24kHzを超えるサンプリングレートの音声データは再生できなくなります。
configにNULLを指定した場合、デフォルト設定( criAtomPlayer_SetDefaultConfigForWavePlayer 適用時と同じパラメーター)でプレーヤーを作成します。
プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。
各方式の詳細については、別途 criAtomPlayer_CreateAdxPlayer 関数の説明をご参照ください。

criAtomPlayer_CreateWavePlayer 関数を実行すると、Atomプレーヤーが作成され、 プレーヤーを制御するためのハンドル( CriAtomPlayerHn )が返されます。
データやデコーダーのセット、再生の開始、ステータスの取得等、Atomプレーヤーに対して 行う操作は、全てハンドルに対して行います。

作成されたAtomプレーヤーハンドルを使用して音声データを再生する手順は以下のとおりです。
  1. criAtomPlayer_SetData 関数を使用して、Atomプレーヤーに再生するデータをセットする。
    (ファイル再生時は、 criAtomPlayer_SetFile 関数または criAtomPlayer_SetContentId 関数を使用する。)
  2. criAtomPlayer_Start 関数で再生を開始する。
備考:
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
本関数を実行する前に、ライブラリを初期化しておく必要があります。

ストリーム再生用のAtomプレーヤーは、内部的にローダー( CriFsLoaderHn )を確保します。
ストリーム再生用のAtomプレーヤーを作成する場合、プレーヤーハンドル数分のローダーが確保 できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。

本関数は完了復帰型の関数です。
WAVEプレーヤーの作成にかかる時間は、プラットフォームによって異なります。
ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
WAVEプレーヤーの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。

現状、Waveファイルのチャンク解析は厳密には行っていません。
チャンクの並び順がFORMチャンク、COMMチャンク、SSNDチャンクではない場合や、 その他のチャンクを含むWaveファイルは、解析に失敗する可能性があります。
また、現時点で対応しているフォーマットは、モノラルまたはステレオの 16bit 非圧縮データのみです。
参照
CriAtomWavePlayerConfig, criAtomPlayer_CalculateWorkSizeForWavePlayer, CriAtomPlayerHn, criAtomPlayer_Destroy, criAtomPlayer_SetData, criAtomPlayer_SetFile, criAtomPlayer_SetContentId, criAtomPlayer_Start, criAtomPlayer_CreateWavePlayer

◆ criAtomPlayer_CalculateWorkSizeForAiffPlayer()

CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForAiffPlayer ( const CriAtomAiffPlayerConfig config)

AIFFプレーヤー作成用ワーク領域サイズの計算

引数
[in]configAIFFプレーヤー作成用コンフィグ構造体
戻り値
CriSint32 ワーク領域サイズ
戻り値
0以上正常に処理が完了
-1エラーが発生
説明:
AIFF再生用プレーヤーを作成するために必要な、ワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
プレーヤーの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomAiffPlayerConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomPlayer_SetDefaultConfigForAiffPlayer 適用時と同じパラメーター)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
ワーク領域のサイズはライブラリ初期化時( criAtom_Initialize 関数実行時) に指定したパラメーターによって変化します。
そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
参照
CriAtomAiffPlayerConfig, criAtomPlayer_CreateAiffPlayer

◆ criAtomPlayer_CreateAiffPlayer()

CriAtomPlayerHn CRIAPI criAtomPlayer_CreateAiffPlayer ( const CriAtomAiffPlayerConfig config,
void *  work,
CriSint32  work_size 
)

AIFFプレーヤーの作成

引数
[in]configAIFFプレーヤー作成用コンフィグ構造体
[in]workワーク領域
[in]work_sizeワーク領域サイズ
戻り値
CriAtomPlayerHn Atomプレーヤーハンドル
説明:
AIFFが再生可能なプレーヤーを作成します。
本関数で作成されたAtomプレーヤーには、AIFFデータのデコード機能が付加されています。

作成されたプレーヤーで再生できる音声のフォーマットは、第一引数(config)に指定した パラメーターによって決まります。
例えば、configのmax_sampling_rateに24000を設定した場合、作成されたプレーヤーでは 24kHzを超えるサンプリングレートの音声データは再生できなくなります。
configにNULLを指定した場合、デフォルト設定( criAtomPlayer_SetDefaultConfigForAiffPlayer 適用時と同じパラメーター)でプレーヤーを作成します。
プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。
各方式の詳細については、別途 criAtomPlayer_CreateAdxPlayer 関数の説明をご参照ください。

criAtomPlayer_CreateAiffPlayer 関数を実行すると、Atomプレーヤーが作成され、 プレーヤーを制御するためのハンドル( CriAtomPlayerHn )が返されます。
データやデコーダーのセット、再生の開始、ステータスの取得等、Atomプレーヤーに対して 行う操作は、全てハンドルに対して行います。

作成されたAtomプレーヤーハンドルを使用して音声データを再生する手順は以下のとおりです。
  1. criAtomPlayer_SetData 関数を使用して、Atomプレーヤーに再生するデータをセットする。
    (ファイル再生時は、 criAtomPlayer_SetFile 関数または criAtomPlayer_SetContentId 関数を使用する。)
  2. criAtomPlayer_Start 関数で再生を開始する。
備考:
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
本関数を実行する前に、ライブラリを初期化しておく必要があります。

ストリーム再生用のAtomプレーヤーは、内部的にローダー( CriFsLoaderHn )を確保します。
ストリーム再生用のAtomプレーヤーを作成する場合、プレーヤーハンドル数分のローダーが確保 できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。

本関数は完了復帰型の関数です。
AIFFプレーヤーの作成にかかる時間は、プラットフォームによって異なります。
ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
AIFFプレーヤーの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。

現状、AIFFファイルのチャンク解析は厳密には行っていません。
チャンクの並び順がFORMチャンク、COMMチャンク、SSNDチャンクではない場合や、 その他のチャンクを含むAIFFファイルは、解析に失敗する可能性があります。
また、現時点で対応しているフォーマットは、モノラルまたはステレオの 16bit 非圧縮データのみです。
参照
CriAtomAiffPlayerConfig, criAtomPlayer_CalculateWorkSizeForAiffPlayer, CriAtomPlayerHn, criAtomPlayer_Destroy, criAtomPlayer_SetData, criAtomPlayer_SetFile, criAtomPlayer_SetContentId, criAtomPlayer_Start, criAtomPlayer_CreateAiffPlayer

◆ criAtomPlayer_CalculateWorkSizeForRawPcmPlayer()

CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForRawPcmPlayer ( const CriAtomRawPcmPlayerConfig config)

RawPCMプレーヤー作成用ワーク領域サイズの計算

引数
[in]configRawPCMプレーヤー作成用コンフィグ構造体
戻り値
CriSint32 ワーク領域サイズ
戻り値
0以上正常に処理が完了
-1エラーが発生
説明:
RawPCM再生用プレーヤーを作成するために必要な、ワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
プレーヤーの作成に必要なワークメモリのサイズは、プレーヤー作成用コンフィグ 構造体( CriAtomRawPcmPlayerConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtomPlayer_SetDefaultConfigForRawPcmPlayer 適用時と同じパラメーター)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
ワーク領域のサイズはライブラリ初期化時( criAtom_Initialize 関数実行時) に指定したパラメーターによって変化します。
そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
参照
CriAtomRawPcmPlayerConfig, criAtomPlayer_CreateRawPcmPlayer

◆ criAtomPlayer_CreateRawPcmPlayer()

CriAtomPlayerHn CRIAPI criAtomPlayer_CreateRawPcmPlayer ( const CriAtomRawPcmPlayerConfig config,
void *  work,
CriSint32  work_size 
)

RawPCMプレーヤーの作成

引数
[in]configRawPCMプレーヤー作成用コンフィグ構造体
[in]workワーク領域
[in]work_sizeワーク領域サイズ
戻り値
CriAtomPlayerHn Atomプレーヤーハンドル
説明:
RawPCMが再生可能なプレーヤーを作成します。
本関数で作成されたAtomプレーヤーには、RawPCMデータのデコード機能が付加されています。

作成されたプレーヤーで再生できる音声のフォーマットは、第一引数(config)に指定した パラメーターによって決まります。
例えば、configのmax_sampling_rateに24000を設定した場合、作成されたプレーヤーでは 24kHzを超えるサンプリングレートの音声データは再生できなくなります。
configにNULLを指定した場合、デフォルト設定( criAtomPlayer_SetDefaultConfigForRawPcmPlayer 適用時と同じパラメーター)でプレーヤーを作成します。
プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。
各方式の詳細については、別途 criAtomPlayer_CreateAdxPlayer 関数の説明をご参照ください。

criAtomPlayer_CreateRawPcmPlayer 関数を実行すると、Atomプレーヤーが作成され、 プレーヤーを制御するためのハンドル( CriAtomPlayerHn )が返されます。
データやデコーダーのセット、再生の開始、ステータスの取得等、Atomプレーヤーに対して 行う操作は、全てハンドルに対して行います。

作成されたAtomプレーヤーハンドルを使用して音声データを再生する手順は以下のとおりです。
  1. criAtomPlayer_SetData 関数を使用して、Atomプレーヤーに再生するデータをセットする。
    (ファイル再生時は、 criAtomPlayer_SetFile 関数または criAtomPlayer_SetContentId 関数を使用する。)
  2. criAtomPlayer_Start 関数で再生を開始する。
備考:
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
本関数を実行する前に、ライブラリを初期化しておく必要があります。

ストリーム再生用のAtomプレーヤーは、内部的にローダー( CriFsLoaderHn )を確保します。
ストリーム再生用のAtomプレーヤーを作成する場合、プレーヤーハンドル数分のローダーが確保 できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。

本関数は完了復帰型の関数です。
RawPCMプレーヤーの作成にかかる時間は、プラットフォームによって異なります。
ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
RawPCMプレーヤーの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
参照
CriAtomRawPcmPlayerConfig, criAtomPlayer_CalculateWorkSizeForRawPcmPlayer, CriAtomPlayerHn, criAtomPlayer_Destroy, criAtomPlayer_SetData, criAtomPlayer_SetFile, criAtomPlayer_SetContentId, criAtomPlayer_Start, criAtomPlayer_CreateRawPcmPlayer

◆ criAtomPlayer_Destroy()

void CRIAPI criAtomPlayer_Destroy ( CriAtomPlayerHn  player)

Atomプレーヤーの破棄

引数
[in]playerAtomプレーヤーハンドル
説明:
Atomプレーヤーを破棄します。
本関数を実行した時点で、Atomプレーヤー作成時に確保されたリソースが全て解放されます。
また、引数に指定したAtomプレーヤーハンドルも無効になります。
注意
本関数は完了復帰型の関数です。
音声再生中のAtomプレーヤーを破棄しようとした場合、本関数内で再生停止を 待ってからリソースの解放が行われます。
(ファイルから再生している場合は、さらに読み込み完了待ちが行われます。)
そのため、本関数内で処理が長時間(数フレーム)ブロックされる可能性があります。
Atomプレーヤーの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
参照
criAtomPlayer_CreateAdxPlayer, CriAtomPlayerHn

◆ criAtomPlayer_SetData()

void CRIAPI criAtomPlayer_SetData ( CriAtomPlayerHn  player,
void *  buffer,
CriSint32  buffer_size 
)

音声データのセット(オンメモリデータの指定)

引数
[in]playerAtomプレーヤーハンドル
[in]bufferバッファーアドレス
[in]buffer_sizeバッファーサイズ
説明:
メモリ上に配置された音声データを、Atomプレーヤーに関連付けます。
本関数でメモリアドレスとサイズを指定後、 criAtomPlayer_Start 関数で再生を 開始すると、指定されたデータが再生されます。
例:
main()
{
:
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
:
}
void CRIAPI criAtomPlayer_Start(CriAtomPlayerHn player)
再生の開始
void CRIAPI criAtomPlayer_SetData(CriAtomPlayerHn player, void *buffer, CriSint32 buffer_size)
音声データのセット(オンメモリデータの指定)
尚、一旦セットしたデータの情報は、他のデータがセットされるまでAtomプレーヤー内に保持 されます。
そのため、同じデータを何度も再生する場合には、再生毎にデータをセットしなおす必要 はありません。
備考:
データ要求コールバック関数( CriAtomPlayerDataRequestCbFunc )内で本関数を実行すると、 前回セットした音声の終端に連結して次のデータが再生されます。
例えば、以下のコードを実行すると、buffer1のデータとbuffer2のデータがシームレスに 連結して再生されます。
(その後はbuffer2のデータが繰り返し再生されます。)
// データ要求コールバック関数
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);
// セットされた音声データを再生
:
}
void CRIAPI criAtomPlayer_SetDataRequestCallback(CriAtomPlayerHn player, CriAtomPlayerDataRequestCbFunc func, void *obj)
データ要求コールバック関数の登録
データ要求コールバック関数内で criAtomPlayer_SetFile 関数を実行することで、 オンメモリデータとファイルを連結して再生することも可能です。
(ただし、先に再生するオンメモリデータが短すぎる場合、次に再生するファイルの 読み込みが間に合わず、音声が途切れる可能性があります。)
注意
プレーヤーが記憶するのはバッファーのアドレスとサイズのみです。
(バッファー内のデータがコピーされるわけではありません。)
そのため、指定したデータの再生が終了するまでの間、 アプリケーション側でバッファーを保持し続ける必要があります。

本関数は停止中のプレーヤーに対してのみ実行可能です。
参照
criAtomPlayer_Start

◆ criAtomPlayer_SetFile()

void CRIAPI criAtomPlayer_SetFile ( CriAtomPlayerHn  player,
CriFsBinderHn  binder,
const CriChar8 *  path 
)

音声データのセット(ファイルの指定)

引数
[in]playerAtomプレーヤーハンドル
[in]binderバインダーハンドル
[in]pathファイルパス
説明:
音声ファイルをAtomプレーヤーに関連付けます。
本関数でファイルを指定後、 criAtomPlayer_Start 関数で再生を開始すると、 指定されたファイルがストリーミング再生されます。
尚、本関数を実行した時点では、ファイルの読み込みは開始されません。
ファイルの読み込みが開始されるのは、 criAtomPlayer_Start 関数実行後です。
例:
main()
{
:
// 音声ファイルをセット
criAtomPlayer_SetFile(player, NULL, "sample.adx");
// セットされた音声データを再生
:
}
void CRIAPI criAtomPlayer_SetFile(CriAtomPlayerHn player, CriFsBinderHn binder, const CriChar8 *path)
音声データのセット(ファイルの指定)
尚、一旦セットしたファイルの情報は、他のデータがセットされるまでAtomプレーヤー内に保持 されます。
そのため、同じデータを何度も再生する場合には、再生毎にデータをセットしなおす必要 はありません。
備考:
データ要求コールバック関数( CriAtomPlayerDataRequestCbFunc )内で本関数を実行すると、 前回セットした音声の終端に連結して次のデータが再生されます。
例えば、以下のコードを実行すると、"sample1.adx"と"sample2.adx"とがシームレスに 連結して再生されます。
(その後は"sample2.adx"が繰り返し再生されます。)
// データ要求コールバック関数
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");
// セットされた音声データを再生
:
}
尚、第二引数(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;
}
// サーバー処理の実行
// Vsync待ち等
:
}
:
// 音声ファイルをセット
// sample.cpk内のcontent.adxをセット
criAtomPlayer_SetFile(player, binder, "content.adx");
// セットされた音声データを再生
:
}
@ CRIFSBINDER_STATUS_COMPLETE
Definition: cri_file_system.h:1168
CriError criFsBinder_GetStatus(CriFsBindId bndrid, CriFsBinderStatus *status)
バインド状態の取得
CriError criFsBinder_BindCpk(CriFsBinderHn bndrhn, CriFsBinderHn srcbndrhn, const CriChar8 *path, void *work, CriSint32 worksize, CriFsBindId *bndrid)
Cpkファイルのバインド
CriError criFs_ExecuteMain(void)
サーバー処理の実行
データ要求コールバック関数内で criAtomPlayer_SetData 関数を実行することで、 ファイルとオンメモリデータを連結して再生することも可能です。
注意
ファイルからの再生を行う場合には、ストリーミング再生に対応した Atomプレーヤーを使用する必要があります。
CriAtomAdxPlayerConfig のstreaming_flagにCRI_TRUEを設定して Atomプレーヤーを作成する必要があります。)

本関数は停止中のプレーヤーに対してのみ実行可能です。
参照
CriAtomAdxPlayerConfig, criAtomPlayer_CreateAdxPlayer, criAtomPlayer_Start

◆ criAtomPlayer_SetContentId()

void CRIAPI criAtomPlayer_SetContentId ( CriAtomPlayerHn  player,
CriFsBinderHn  binder,
CriSint32  id 
)

音声データのセット(CPKコンテンツIDの指定)

引数
[in]playerAtomプレーヤーハンドル
[in]binderバインダーハンドル
[in]idコンテンツID
説明:
コンテンツをAtomプレーヤーに関連付けます。
CRI File Systemライブラリを使用してCPKファイル内のコンテンツファイルを ID指定で再生するために使用します。
本関数にバインダーとコンテンツIDを指定後、 criAtomPlayer_Start 関数で再生を 開始すると、指定されたコンテンツファイルがストリーミング再生されます。
尚、本関数を実行した時点では、ファイルの読み込みは開始されません。
ファイルの読み込みが開始されるのは、 criAtomPlayer_Start 関数実行後です。
例:
main()
{
:
// CPKファイルをバインド
criFsBinder_BindCpk(binder, "sample.cpk", work, work_size, &bind_id);
// バインド完了待ち
for (;;) {
// ステータスのチェック
criFsBinder_GetStatus(binder, &status);
if (status == CRIFSBINDER_STATUS_COMPLETE) {
break;
}
// サーバー処理の実行
// Vsync待ち等
:
}
:
// 音声ファイルをセット
// sample.cpk内の1番のコンテンツをセット
criAtomPlayer_SetContentId(player, binder, 1);
// セットされた音声データを再生
:
}
void CRIAPI criAtomPlayer_SetContentId(CriAtomPlayerHn player, CriFsBinderHn binder, CriSint32 id)
音声データのセット(CPKコンテンツIDの指定)
尚、一旦セットしたファイルの情報は、他のデータがセットされるまでAtomプレーヤー内に保持 されます。
そのため、同じデータを何度も再生する場合には、再生毎にデータをセットしなおす必要 はありません。
備考:
データ要求コールバック関数( CriAtomPlayerDataRequestCbFunc )内で本関数を実行すると、 前回セットした音声の終端に連結して次のデータが再生されます。
例えば、以下のコードを実行すると、1番のデータと2番のデータとがシームレスに 連結して再生されます。
(その後は2番のデータが繰り返し再生されます。)
// データ要求コールバック関数
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);
// セットされた音声データを再生
:
}
struct CriFsBinderHnObjTag * CriFsBinderHn
CriFsBinderハンドル
Definition: cri_file_system.h:1102
データ要求コールバック関数内で criAtomPlayer_SetData 関数を実行することで、 ファイルとオンメモリデータを連結して再生することも可能です。
注意
ファイルからの再生を行う場合には、ストリーミング再生に対応した Atomプレーヤーを使用する必要があります。
CriAtomAdxPlayerConfig のstreaming_flagにCRI_TRUEを設定して Atomプレーヤーを作成する必要があります。)

本関数は停止中のプレーヤーに対してのみ実行可能です。
参照
CriAtomAdxPlayerConfig, criAtomPlayer_CreateAdxPlayer, criAtomPlayer_Start

◆ criAtomPlayer_SetWaveId()

void CRIAPI criAtomPlayer_SetWaveId ( CriAtomPlayerHn  player,
CriAtomAwbHn  awb,
CriSint32  id 
)

音声データのセット(音声データIDの指定)

引数
[in]playerAtomプレーヤーハンドル
[in]awbAWBハンドル
[in]id波形データID
説明:
再生する波形データをAtomプレーヤーに関連付けます。
本関数にAWBハンドルと波形データIDを指定後、 criAtomPlayer_Start 関数で再生を 開始すると、指定した波形データがストリーミング再生されます。
尚、本関数を実行した時点では、ファイルの読み込みは開始されません。
ファイルの読み込みが開始されるのは、 criAtomPlayer_Start 関数実行後です。
例:
main()
{
:
// AWBのTOC情報をロードしてAWBハンドルを作成
awb = criAtomAwb_LoadToc(NULL, "sample.awb", NULL, 0);
:
// 波形データをセット
// AWB内の1番の波形データをセット
criAtomPlayer_SetWaveId(player, awb, 1);
// セットされた音声データを再生
:
}
CriAtomAwbHn CRIAPI criAtomAwb_LoadToc(CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size)
AWBファイルのTOC情報ロード(同期版)
void CRIAPI criAtomPlayer_SetWaveId(CriAtomPlayerHn player, CriAtomAwbHn awb, CriSint32 id)
音声データのセット(音声データIDの指定)
尚、一旦セットしたファイルの情報は、他のデータがセットされるまでAtomプレーヤー内に保持 されます。
そのため、同じデータを何度も再生する場合には、再生毎にデータをセットしなおす必要 はありません。
備考:
データ要求コールバック関数( CriAtomPlayerDataRequestCbFunc )内で本関数を実行すると、 前回セットした音声の終端に連結して次のデータが再生されます。
例えば、以下のコードを実行すると、1番のデータと2番のデータとがシームレスに 連結して再生されます。
(その後は2番のデータが繰り返し再生されます。)
// データ要求コールバック関数
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);
// セットされた波形データを再生
:
}
struct CriAtomAwbTag * CriAtomAwbHn
AWBハンドル
Definition: cri_atom.h:1357
データ要求コールバック関数内で criAtomPlayer_SetData 関数を実行することで、 ファイルとオンメモリデータを連結して再生することも可能です。
注意
ファイルからの再生を行う場合には、ストリーミング再生に対応した Atomプレーヤーを使用する必要があります。
CriAtomAdxPlayerConfig のstreaming_flagにCRI_TRUEを設定して Atomプレーヤーを作成する必要があります。)

本関数は停止中のプレーヤーに対してのみ実行可能です。
参照
CriAtomAdxPlayerConfig, criAtomPlayer_CreateAdxPlayer, criAtomPlayer_Start

◆ criAtomPlayer_SetPreviousDataAgain()

void CRIAPI criAtomPlayer_SetPreviousDataAgain ( CriAtomPlayerHn  player)

同一音声データの再セット

引数
[in]playerAtomプレーヤーハンドル
説明:
前回再生したデータを、再度再生するようAtomプレーヤーに指示します。
例:
以下の処理により、同一音声データを無限にループ再生可能です。
// データ要求コールバック関数
void on_data_request(void *obj, CriAtomPlayerHn player)
{
// 前回再生したデータを再セット
}
main()
{
:
// データ要求コールバック関数の登録
criAtomPlayer_SetDataRequestCallback(player, on_data_request, NULL);
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
:
}
void CRIAPI criAtomPlayer_SetPreviousDataAgain(CriAtomPlayerHn player)
同一音声データの再セット
注意
本関数はデータ要求コールバック関数内でのみ使用します。
(データ要求コールバック関数外でも実行可能ですが、その場合何の効果もありません。)
参照
criAtomPlayer_SetDataRequestCallback

◆ criAtomPlayer_DeferCallback()

void CRIAPI criAtomPlayer_DeferCallback ( CriAtomPlayerHn  player)

コールバック関数の再実行要求

引数
[in]playerAtomプレーヤーハンドル
説明:
データ要求コールバック関数の処理を先延ばしします。
データ要求コールバック関数が実行された時点で、次に再生する音声データが まだ決まっていない場合、本関数を実行することで、コールバック関数をリトライ することが可能になります。
(数ミリ秒後に再度データ要求コールバック関数が呼ばれます。)
備考:
データ要求コールバック関数内で何もしなかった場合、Atomプレーヤーのステータスは CRIATOMPLAYER_STATUS_PLAYEND に遷移します。
しかし、データ要求コールバック関数内で本関数を実行した場合、Atomプレーヤーの ステータスは CRIATOMPLAYER_STATUS_PLAYING を維持し続けます。
注意
本関数を実行した場合、Atomプレーヤーのステータスは CRIATOMPLAYER_STATUS_PLAYING を維持し続けますが、音声出力は途切れる可能性があります。
(データの読み込みが間に合わない場合、前回再生した音声と、次にセットする音声 との間に、無音が入る可能性があります。)

本関数はデータ要求コールバック関数内でのみ使用可能です。
(データ要求コールバック関数外で実行した場合、エラーが発生します。)
参照
criAtomPlayer_SetDataRequestCallback

◆ criAtomPlayer_Start()

void CRIAPI criAtomPlayer_Start ( CriAtomPlayerHn  player)

再生の開始

引数
[in]playerAtomプレーヤーハンドル
説明:
音声データの再生処理を開始します。
本関数を実行する前に、事前に criAtomPlayer_SetData 関数等を使用し、再生する 音声データをAtomプレーヤーにセットしておく必要があります。
例えば、オンメモリの音声データを再生する場合には、以下のように事前に criAtomPlayer_SetData 関数を使って音声データをセットした後、本関数を実行する 必要があります。
main()
{
:
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
:
}
本関数実行後、再生の進み具合(発音が開始されたか、再生が完了したか等)がどうなって いるかは、ステータスを取得することで確認が可能です。
ステータスの取得には、 criAtomPlayer_GetStatus 関数を使用します。
criAtomPlayer_GetStatus 関数は以下の5通りのステータスを返します。
  1. CRIATOMPLAYER_STATUS_STOP
  2. CRIATOMPLAYER_STATUS_PREP
  3. CRIATOMPLAYER_STATUS_PLAYING
  4. CRIATOMPLAYER_STATUS_PLAYEND
  5. CRIATOMPLAYER_STATUS_ERROR

Atomプレーヤーを作成した時点では、Atomプレーヤーのステータスは停止状態 ( CRIATOMPLAYER_STATUS_STOP )です。
再生する音声データをセット後、本関数を実行することで、Atomプレーヤーのステータスが 準備状態( CRIATOMPLAYER_STATUS_PREP )に変更されます。
(CRIATOMPLAYER_STATUS_PREP は、データ供給やデコードの開始を待っている状態です。)
再生の開始に充分なデータが供給された時点で、Atomプレーヤーはステータスを 再生状態( CRIATOMPLAYER_STATUS_PLAYING )に変更し、音声の出力を開始します。
セットされたデータを全て再生し終えると、Atomプレーヤーはステータスを再生終了状態 ( CRIATOMPLAYER_STATUS_PLAYEND )に変更します。
尚、再生中にエラーが発生した場合には、Atomプレーヤーはステータスをエラー状態 ( CRIATOMPLAYER_STATUS_ERROR )に変更します。

Atomプレーヤーのステータスをチェックし、ステータスに応じて処理を切り替えることで、 音声の再生状態に連動したプログラムを作成することが可能です。
例えば、音声の再生完了を待って処理を進めたい場合には、以下のようなコードになります。

main()
{
:
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
// 再生完了待ち
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
// 再生終了時はループを抜ける
break;
}
// サーバー処理の実行
// 画面表示の更新等
:
}
:
}
void CRIAPI criAtom_ExecuteMain(void)
マルチスレッド用サーバー処理の実行
CriAtomPlayerStatus CRIAPI criAtomPlayer_GetStatus(CriAtomPlayerHn player)
ステータスの取得
@ CRIATOMPLAYER_STATUS_PLAYEND
Definition: cri_atom.h:2324
備考:
再生開始後、実際に音声が出力されるまでには、タイムラグがあります。
オンメモリのデータ再生時( criAtomPlayer_SetData 関数でデータをセットした場合)は、 本関数実行後、最初にサーバー処理が実行されたタイミングでステータスが CRIATOMPLAYER_STATUS_PLAYING に遷移します。
しかし、ストリーミング再生時は、再生を維持するために必要なデータが充分バッファリング されるまでの間、CRIATOMPLAYER_STATUS_PREP を維持し続けます。
(必要充分なデータが供給された時点で、 CRIATOMPLAYER_STATUS_PLAYING に遷移します。)

尚、ステータスが CRIATOMPLAYER_STATUS_PLAYING に遷移するタイミングは、 あくまで"サウンドライブラリに対して再生指示を発行する"タイミングになります。
そのため、実際にスピーカーから音が出るタイミングは、各プラットフォームのサウンド ライブラリの処理時間に依存します。

ストリーミング再生時に発音が開始されるタイミングは、同時にストリーミング再生を行う 音声の数や、デバイスの読み込み速度によって変化します。
ストリーミング再生時に意図としたタイミングで発音を開始させたい場合には、 criAtomPlayer_Pause 関数で事前にポーズをかけておき、Atomプレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYING に遷移した時点で、ポーズを解除してください。
(ポーズをかけた状態でステータスが CRIATOMPLAYER_STATUS_PLAYING に遷移した場合、 ポーズ解除後最初のサーバー処理が実行されたタイミングで、発音が開始されます。

具体的なコードは以下のとおりです。
main()
{
:
// 音声ファイルをセット
criAtomPlayer_SetData(player, NULL, "sample.adx");
// 再生開始前にポーズをかけておく
criAtomPlayer_Pause(player, CRI_TRUE);
// セットされた音声データを再生
// ステータスがCRIATOMPLAYER_STATUS_PLAYINGに遷移するのを待つ
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
// CRIATOMPLAYER_STATUS_PLAYING状態になった時点でループを抜ける
break;
}
// サーバー処理の実行
// 画面表示の更新等
:
}
// ポーズの解除
// →次のサーバー処理が実行されるタイミングで発音が開始される
criAtomPlayer_Pause(player, CRI_FALSE);
:
}
void CRIAPI criAtomPlayer_Pause(CriAtomPlayerHn player, CriBool flag)
再生のポーズ/ポーズ解除
@ CRIATOMPLAYER_STATUS_PLAYING
Definition: cri_atom.h:2323
注意
既に再生を開始したAtomプレーヤーに対して本関数を実行することはできません。
(ADXライブラリとは異なり、再生中のAtomプレーヤーに対して再度再生の開始を指示した場合、 エラーになります。)
Atomプレーヤーに対して再生を指示する場合には、必ず事前にステータスをチェックし、 ステータスが準備中( CRIATOMPLAYER_STATUS_PREP )や再生中( CRIATOMPLAYER_STATUS_PLAYING ) になっていないことをご確認ください。
参照
criAtomPlayer_SetData, criAtomPlayer_SetFile, criAtomPlayer_GetStatus, criAtomPlayer_Pause, criAtom_ExecuteMain

◆ criAtomPlayer_Stop()

void CRIAPI criAtomPlayer_Stop ( CriAtomPlayerHn  player)

再生の停止

引数
[in]playerAtomプレーヤーハンドル
説明:
再生の停止要求を発行します。
音声再生中のAtomプレーヤーに対して本関数を実行すると、Atomプレーヤーは再生を停止 (ファイルの読み込みや、発音を止める)し、ステータスを停止状態 ( CRIATOMPLAYER_STATUS_STOP )に遷移します。
既に停止しているAtomプレーヤー(ステータスが CRIATOMPLAYER_STATUS_PLAYEND や CRIATOMPLAYER_STATUS_ERROR のAtomプレーヤー) に対して本関数を実行すると、 Atomプレーヤーのステータスを CRIATOMPLAYER_STATUS_STOP に変更します。
注意
音声再生中のAtomプレーヤーに対して本関数を実行した場合、ステータスが即座に CRIATOMPLAYER_STATUS_STOP になるとは限りません。
(停止状態になるまでに、時間がかかる場合があります。)
そのため、本関数で再生を停止後、続けて別の音声データを再生する場合には、 必ずステータスが CRIATOMPLAYER_STATUS_STOP に遷移したことを確認してから 次のデータをセット(または再生の開始)を行ってください。

main()
{
:
// 再生の停止を要求
// ステータスがCRIATOMPLAYER_STATUS_STOPに遷移するのを待つ
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
if (status == CRIATOMPLAYER_STATUS_STOP) {
// CRIATOMPLAYER_STATUS_STOP状態になった時点でループを抜ける
break;
}
// サーバー処理の実行
// 画面表示の更新等
:
}
// 別の音声ファイルをセット
criAtomPlayer_SetData(player, NULL, "sample.adx");
// セットされた音声データを再生
:
}
void CRIAPI criAtomPlayer_Stop(CriAtomPlayerHn player)
再生の停止
@ CRIATOMPLAYER_STATUS_STOP
Definition: cri_atom.h:2321
参照
criAtomPlayer_Start, criAtomPlayer_GetStatus

◆ criAtomPlayer_Pause()

void CRIAPI criAtomPlayer_Pause ( CriAtomPlayerHn  player,
CriBool  flag 
)

再生のポーズ/ポーズ解除

引数
[in]playerAtomプレーヤーハンドル
[in]flag動作フラグ(CRI_TRUE = ポーズ、CRI_FALSE = ポーズ解除)
説明:
再生をポーズ(一時停止)したり、ポーズを解除します。
ポーズするか、ポーズを解除するかは、引数のflagで指定します。
flagにCRI_TRUEを指定した場合、再生はポーズされます。
flagにCRI_FALSEを指定した場合、ポーズが解除されます。
Atomプレーヤーがポーズされているかどうかは criAtomPlayer_IsPaused 関数を使用する ことで確認が可能です。

本関数は主に以下の2通りの用途に利用します。
  • 音声出力の一時停止/一時停止解除。
  • ストリーミング再生の頭出し。


【音声出力の一時停止/一時停止解除について】 再生中のAtomプレーヤーに対してポーズを行うと、その時点で音声の出力を中断します。
ポーズされたAtomプレーヤーに対してポーズ解除を行うと、ポーズ時に中断された箇所から 再生が再開されます。

【ストリーミング再生の頭出しについて】 ポーズ処理は再生開始前のAtomプレーヤーに対しても有効です。
再生開始前のAtomプレーヤーに対してポーズをかけた場合、ポーズされたAtomプレーヤーに criAtomPlayer_Start 関数で再生指示しても、音声の出力は行われません。
しかし、再生準備は行われるため、データが充分に供給されていれば、ステータスは CRIATOMPLAYER_STATUS_PLAYING まで遷移します。

ステータスが CRIATOMPLAYER_STATUS_PLAYING の状態でポーズされているAtomプレーヤー については、ポーズ解除を行ったタイミングで発音を開始させることが可能です。
そのため、以下の処理手順を踏むことで、ストリーミング再生の発音タイミングを 他のアクションに同期させることが可能です。

  1. criAtomPlayer_Pause 関数でAtomプレーヤーをポーズさせる。
  2. criAtomPlayer_Start 関数でAtomプレーヤーに再生開始を指示する。
  3. Atomプレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYING になるのを待つ。
  4. 発音を開始したいタイミングで criAtomPlayer_Pause 関数を実行し、ポーズを解除する。


具体的なコードは以下のとおりです。

main()
{
:
// 音声ファイルをセット
criAtomPlayer_SetData(player, NULL, "sample.adx");
// 再生開始前にポーズをかけておく
criAtomPlayer_Pause(player, CRI_TRUE);
// セットされた音声データを再生
// ステータスがCRIATOMPLAYER_STATUS_PLAYINGに遷移するのを待つ
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
// CRIATOMPLAYER_STATUS_PLAYING状態になった時点でループを抜ける
break;
}
// サーバー処理の実行
// 画面表示の更新等
:
}
// ポーズの解除
// →次のサーバー処理が実行されるタイミングで発音が開始される
criAtomPlayer_Pause(player, CRI_FALSE);
:
}
備考:
厳密には、 criAtomPlayer_Pause 関数実行後、最初にサーバー処理が動作した時点で ポーズ処理が行われます。
そのため、サーバー処理が実行される前にポーズ⇒ポーズ解除の操作が行われた場合を 行うと、音声が止まることなく再生が進むことになります。
尚、ポーズされたAtomプレーヤーに対して再度ポーズを行ったり、ポーズされていない Atomプレーヤーに対してポーズ解除を行っても、エラーは発生しません。
(何も処理されずに関数を抜けます。)
参照
criAtomPlayer_IsPaused, criAtomPlayer_Start

◆ criAtomPlayer_IsPaused()

CriBool CRIAPI criAtomPlayer_IsPaused ( CriAtomPlayerHn  player)

ポーズされているかどうかのチェック

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriBool ポーズ状態(CRI_TRUE = ポーズされている、CRI_FALSE = ポーズされていない)
説明:
Atomプレーヤーがポーズされているかどうかをチェックします。
ポーズされているかどうかは、引数のflagにセットされる値で判定します。
flagがCRI_TRUEだった場合、Atomプレーヤーはポーズされています。
flagがCRI_FALSEだった場合、Atomプレーヤーはポーズされていません。
備考:
本関数は criAtomPlayer_Pause 関数で指定された動作フラグをそのまま返します。
criAtomPlayer_Pause 関数の第2引数にセットした値がflagとして返されます。)
そのため、本関数の結果と実際に音声出力が停止しているかどうかは、必ずしも一致するとは 限りません。
criAtomPlayer_Pause 関数の実行タイミングと、実際に音声出力が停止するタイミングに タイムラグが存在するため。)
参照
criAtomPlayer_Pause

◆ criAtomPlayer_GetStatus()

CriAtomPlayerStatus CRIAPI criAtomPlayer_GetStatus ( CriAtomPlayerHn  player)

ステータスの取得

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriAtomPlayerStatus ステータス
説明:
Atomプレーヤーのステータスを取得します。
ステータスはAtomプレーヤーの再生状態を示す値で、以下の5通りの値が存在します。
  1. CRIATOMPLAYER_STATUS_STOP
  2. CRIATOMPLAYER_STATUS_PREP
  3. CRIATOMPLAYER_STATUS_PLAYING
  4. CRIATOMPLAYER_STATUS_PLAYEND
  5. CRIATOMPLAYER_STATUS_ERROR

Atomプレーヤーを作成した時点では、Atomプレーヤーのステータスは停止状態 ( CRIATOMPLAYER_STATUS_STOP )です。
再生する音声データをセット後、::criAtomPlayer_Start 関数を実行することで、 Atomプレーヤーのステータスが準備状態( CRIATOMPLAYER_STATUS_PREP )に変更されます。
CRIATOMPLAYER_STATUS_PREP は、データ供給やデコードの開始を待っている状態です。)
再生の開始に充分なデータが供給された時点で、Atomプレーヤーはステータスを 再生状態( CRIATOMPLAYER_STATUS_PLAYING )に変更し、音声の出力を開始します。
セットされたデータを全て再生し終えると、Atomプレーヤーはステータスを再生終了状態 ( CRIATOMPLAYER_STATUS_PLAYEND )に変更します。
尚、再生中にエラーが発生した場合には、Atomプレーヤーはステータスをエラー状態 ( CRIATOMPLAYER_STATUS_ERROR )に変更します。

Atomプレーヤーのステータスをチェックし、ステータスに応じて処理を切り替えることで、 音声の再生状態に連動したプログラムを作成することが可能です。
例えば、音声の再生完了を待って処理を進めたい場合には、以下のようなコードになります。

main()
{
:
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
// 再生完了待ち
for (;;) {
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
// 再生終了時はループを抜ける
break;
}
// サーバー処理の実行
// 画面表示の更新等
:
}
:
}
備考:
デバイスからのデータ読み込みに失敗した場合や、データエラーが発生した場合 (不正なデータを読み込んだ場合)、Atomプレーヤーのステータスはエラー状態になります。
データ読み込みエラー発生時にアプリケーションでエラーメッセージ等を表示する場合には、 ステータスが CRIATOMPLAYER_STATUS_ERROR になっていないかどうかをチェックし、 適宜エラーメッセージの表示を行ってください。
main()
{
:
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
// ステータスのチェック
if (status == CRIATOMPLAYER_STATUS_ERROR) {
// CRIATOMPLAYER_STATUS_ERRORになった時点でエラーメッセージを表示する
:
}
:
}
@ CRIATOMPLAYER_STATUS_ERROR
Definition: cri_atom.h:2325
参照
criAtomPlayer_Start

◆ criAtomPlayer_GetNumChannels()

CriSint32 CRIAPI criAtomPlayer_GetNumChannels ( CriAtomPlayerHn  player)

チャンネル数の取得

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriSint32 チャンネル数
説明:
Atomプレーヤーで再生中の音声について、チャンネル数を取得します。

チャンネル数が取得できなかった場合、本関数は -1 を返します。
注意
再生時刻は、プレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYING になるまで取得できません。
CRIATOMPLAYER_STATUS_PREP 時に本関数を実行した場合、エラー値が返されます。)

◆ criAtomPlayer_GetNumPlayedSamples()

CriBool CRIAPI criAtomPlayer_GetNumPlayedSamples ( CriAtomPlayerHn  player,
CriSint64 *  num_played,
CriSint32 *  sampling_rate 
)

再生済みサンプル数の取得

引数
[in]playerAtomプレーヤーハンドル
[out]num_played再生済みサンプル数(サンプル数単位)
[out]sampling_rateサンプリングレート(Hz単位)
戻り値
CriBool サンプル数が取得できたかどうか( CRI_TRUE = 取得できた、 CRI_FALSE = 取得できなかった)
説明:
Atomプレーヤーで再生中の音声について、再生済みのサンプル数、 およびサンプリングレートを取得します。
再生時刻はサンプル数単位、サンプリングレートはHz単位です。

サンプル数が正しく取得できた場合、戻り値は CRI_TRUE になります。
再生済みサンプル数が取得できなかった場合、戻り値は CRI_FALSE になります。
(同時に、 sampling_rate は -1 になります。)
備考
取得する必要のない引数については、 NULL を指定可能です。
例えば、サンプリングレートのみを取得したい場合、第2引数( num_played ) には NULL を指定可能です。
本関数が返す再生済みサンプル数は、出力済み音声データの累積値です。
そのため、ループ再生時や、シームレス連結再生時を行った場合でも、 再生位置に応じてサンプル数が巻き戻ることはありません。
また、 criAtomPlayer_Pause 関数でポーズをかけた場合、 再生済みサンプル数のカウントアップも停止します。
(ポーズを解除すればカウントアップが再開されます。)
注意
再生済みサンプル数は、プレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYING になるまで取得できません。
CRIATOMPLAYER_STATUS_PREP 時に本関数を実行した場合、エラー値が返されます。)

再生サンプル数の精度は、プラットフォームのサウンドライブラリに依存します。

◆ criAtomPlayer_GetNumRenderedSamples()

CriBool CRIAPI criAtomPlayer_GetNumRenderedSamples ( CriAtomPlayerHn  player,
CriSint64 *  num_rendered,
CriSint32 *  sampling_rate 
)

サウンドバッファへの書き込みサンプル数の取得

引数
[in]playerAtomプレーヤハンドル
[out]num_rendered書き込み済みサンプル数(サンプル数単位)
[out]sampling_rateサンプリングレート(Hz単位)
戻り値
CriBool サンプル数が取得できたかどうか( CRI_TRUE = 取得できた、 CRI_FALSE = 取得できなかった)
説明:
Atomプレーヤで再生中の音声について、サウンドバッファへの書き込み済みのサンプル数、 およびサンプリングレートを取得します。
criAtomPlayer_GetNumPlayedSamples 関数と異なり、 サウンドバッファに書き込まれた未出力の音声データのサンプル数を含む値を返します。
サンプル数が正しく取得できた場合、戻り値は CRI_TRUE になります。
書き込み済みサンプル数が取得できなかった場合、戻り値は CRI_FALSE になります。
(同時に、 sampling_rate は -1 になります。)
備考
取得する必要のない引数については、 NULL を指定可能です。
例えば、サンプリングレートのみを取得したい場合、第2引数( num_rendered ) には NULL を指定可能です。
本関数が返すサンプル数は、書き込み済みサンプル数の累積値です。
そのため、ループ再生やシームレス連結再生を行った場合でも、 再生位置に応じてサンプル数が巻き戻ることはありません。
また、 criAtomPlayer_Pause 関数でポーズをかけた場合、 書き込み済みサンプル数のカウントアップも停止します。
(ポーズを解除すればカウントアップが再開されます。)
注意
書き込み済みサンプル数は、プレーヤのステータスが CRIATOMPLAYER_STATUS_PLAYING になるまで取得できません。
CRIATOMPLAYER_STATUS_PREP 時に本関数を実行した場合、エラー値が返されます。)

書き込み済みサンプル数の精度は、プラットフォームのサウンドライブラリに依存します。
参照
criAtomPlayer_GetNumPlayedSamples

◆ criAtomPlayer_GetDecodedDataSize()

CriSint64 CRIAPI criAtomPlayer_GetDecodedDataSize ( CriAtomPlayerHn  player)

デコードデータサイズの取得

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriSint64 デコードデータ量(単位はバイト)
説明:
Atomプレーヤー内でデコードした音声データのバイト数を返します。
備考
本関数が返すデコード量は、再生開始時点からの累積値です。
そのため、ループ再生時や、シームレス連結再生時を行った場合でも、 再生位置に応じてデコード量が巻き戻ることはありません。
また、 criAtomPlayer_Pause 関数でポーズをかけた場合、 デコード量のカウントアップも停止します。
(ポーズを解除すればカウントアップが再開されます。)
注意
HCA-MXを使用する場合や、圧縮された音声データを直接ハードウェアに送信するプラットフォーム (デコード処理がプラットフォームSDKに隠蔽されているコーデック) については、本関数でデコード量を取得できません。

◆ criAtomPlayer_GetNumDecodedSamples()

CriSint64 CRIAPI criAtomPlayer_GetNumDecodedSamples ( CriAtomPlayerHn  player)

デコードサンプル数の取得

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriSint64 デコードサンプル数
説明:
Atomプレーヤー内でデコードした音声データのバイト数を返します。
備考
本関数が返すデコードサンプル数は、再生開始時点からの累積値です。
そのため、ループ再生時や、シームレス連結再生時を行った場合でも、 再生位置に応じてデコードサンプル数が巻き戻ることはありません。
また、 criAtomPlayer_Pause 関数でポーズをかけた場合、 デコードサンプル数のカウントアップも停止します。
(ポーズを解除すればカウントアップが再開されます。)
注意
HCA-MXを使用する場合や、圧縮された音声データを直接ハードウェアに送信するプラットフォーム (デコード処理がプラットフォームSDKに隠蔽されているコーデック) については、本関数でデコードサンプル数を取得できません。

◆ criAtomPlayer_GetTime()

CriSint64 CRIAPI criAtomPlayer_GetTime ( CriAtomPlayerHn  player)

再生時刻の取得

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriSint64 再生時刻(ミリ秒単位)
説明:
Atomプレーヤーで再生中の音声について、現在の再生時刻を取得します。
再生時刻の単位はミリ秒単位です。

引数に誤りがある場合( player が NULL の場合)、本関数は -1 を返します。
停止中や再生準備中等、再生時刻が取得できないタイミングで本関数を実行した場合、 本関数は 0 を返します。
備考
再生時刻は再生済みサンプル数を元に計算されています。
そのため、 criAtomPlayer_SetFrequencyRatio 関数を用いてピッチを上げた場合、 再生時刻は実時間よりも早く進みます。
(ピッチを下げた場合、再生時刻は実時刻よりも遅く進みます。)

本関数が返す再生時刻は、出力済み音声データの累積値です。
そのため、ループ再生時や、シームレス連結再生時を行った場合でも、 再生位置に応じて時刻が巻き戻ることはありません。
また、 criAtomPlayer_Pause 関数でポーズをかけた場合、 再生時刻のカウントアップも停止します。
(ポーズを解除すればカウントアップが再開されます。)
注意
再生時刻は、プレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYING になるまで取得できません。
CRIATOMPLAYER_STATUS_PREP 時に本関数を実行した場合、 0 が返されます。)

再生時刻の精度は、プラットフォームのサウンドライブラリに依存します。
参照
criAtomPlayer_GetStatus, criAtomPlayer_SetFrequencyRatio

◆ criAtomPlayer_GetFormatInfo()

CriBool CRIAPI criAtomPlayer_GetFormatInfo ( CriAtomPlayerHn  player,
CriAtomFormatInfo info 
)

再生音声のフォーマット情報の取得

引数
[in]playerAtomプレーヤーハンドル
[out]infoフォーマット情報
戻り値
CriBool 情報が取得できたかどうか( CRI_TRUE = 取得できた、 CRI_FALSE = 取得できなかった)
説明:
criAtomPlayer_Start 関数で再生された音声のフォーマット情報を取得します。

フォーマット情報が取得できた場合、本関数は CRI_TRUE を返します。
フォーマット情報が取得できなかった場合、本関数は CRI_FALSE を返します。
注意
本関数は、音声再生中のみフォーマット情報を取得可能です。
再生開始前や再生準備中に本関数を実行すると、フォーマット情報の取得に失敗します。
参照
criAtomPlayer_Start, criAtomPlayer_GetStatus

◆ criAtomPlayer_GetInputBufferRemainSize()

CriSint32 CRIAPI criAtomPlayer_GetInputBufferRemainSize ( CriAtomPlayerHn  player)

入力バッファー内データ残量の取得

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriSint32 入力バッファー内のデータ残量(Byte単位)
説明:
Atomプレーヤーの入力バッファー内のデータ残量を取得します。
備考:
本関数は情報取得用途にのみに利用可能なデバッグ関数です。

音途切れの不具合が発生した際、本関数を使用して再生中のプレーヤーの 入力バッファーにデータが残っているかどうかをチェック可能です。
プレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYING にもかかわらず、 データ残量が長時間 0 の場合、何らかの異常によりデータの供給が ブロックされている可能性があります。

◆ criAtomPlayer_GetOutputBufferRemainSamples()

CriSint32 CRIAPI criAtomPlayer_GetOutputBufferRemainSamples ( CriAtomPlayerHn  player)

出力バッファー内データ残量の取得

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriSint32 出力バッファー内のデータ残量(サンプル数単位)
説明:
Atomプレーヤーの出力バッファー内のデータ残量を取得します。
備考:
本関数は情報取得用途にのみに利用可能なデバッグ関数です。

音途切れの不具合が発生した際、本関数を使用して再生中のプレーヤーの 出力バッファーにデータが残っているかどうかをチェック可能です。
プレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYING にもかかわらず、 データ残量が長時間 0 の場合、何らかの異常によりデコード処理が 行われていない可能性があります。
注意
本関数は、音声データをAtomライブラリ内でデコードするケースについてのみ有効です。
圧縮された音声データを直接ハードウェアに送信するプラットフォーム (デコード処理がプラットフォームSDKに隠蔽されているコーデック) については、本関数でデータ残量を取得できません。

◆ criAtomPlayer_SetStartTime()

void CRIAPI criAtomPlayer_SetStartTime ( CriAtomPlayerHn  player,
CriSint64  start_time_ms 
)

再生開始位置の指定

引数
[in]playerAtomプレーヤーハンドル
[in]start_time_ms再生開始位置(ミリ秒指定)
説明:
Atomプレーヤーで再生する音声について、再生を開始する位置を指定します。
音声データを途中から再生したい場合、再生開始前に本関数で再生開始位置を 指定する必要があります。

再生開始位置の指定はミリ秒単位で行います。
例えば、 start_time_ms に 10000 をセットして本関数を実行すると、 次に再生する音声データは 10 秒目の位置から再生されます。
備考
本関数で再生位置を指定した場合でも、指定した時刻ぴったりの位置から再生が 開始されるとは限りません。
(使用する音声コーデックによっては、指定時刻の少し手前から再生が開始されます。)

音声データ途中からの再生は、音声データ先頭からの再生に比べ、発音開始の タイミングが遅くなります。
これは、一旦音声データのヘッダーを解析後、指定位置にジャンプしてからデータを読み 直して再生を開始するためです。
注意
start_time_ms には64bit値をセット可能ですが、現状、32bit以上の再生時刻を 指定することはできません。

音声再生中に本関数を実行しても、再生中の音声の再生位置は変更されません。
本関数で設定した値は、 criAtomPlayer_Start 関数で音声の再生を開始する タイミングでのみ参照されます。

機種固有の音声フォーマットについても、再生開始位置を指定できない場合があります。

参照
criAtomPlayer_Start

◆ criAtomPlayer_SetVolume()

void CRIAPI criAtomPlayer_SetVolume ( CriAtomPlayerHn  player,
CriFloat32  vol 
)

ボリュームの指定

引数
[in]playerAtomプレーヤーハンドル
[in]volボリューム値
説明:
出力音声のボリュームを指定します。
本関数を使用することで、Atomプレーヤーで再生する音声のボリュームを自由に 変更可能です。

ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
(1.0f / 65536.0f) 以下の値を指定した場合、音声はミュートされます(無音になります)。 \備考: ボリューム値には0.0f以上の値が設定可能です。
(Atomライブラリ Ver.1.21.07より、 ボリューム値に1.0fを超える値を指定できるようになりました。)
1.0fを超える値をセットした場合、プラットフォームによっては、 波形データを元素材よりも大きな音量で再生可能です。
ボリューム値に (1.0f / 65536.0f) 以下の値を指定した場合、値は0.0fにクリップされます。
(ボリューム値に負の値を設定した場合でも、 波形データの位相が反転されることはありません。)

本関数の設定値と、以下の関数のボリューム設定値は独立して制御されます。

例えば、本関数に0.5fを、 criAtomPlayer_SetChannelVolume 関数にも0.5fを設定した場合、 出力音声のボリュームは原音を0.25f倍したボリュームで出力されます。
(0.5f×0.5f=0.25fの演算が行われます。)

注意
1.0fを超えるボリュームを指定する場合、以下の点に注意する必要があります。
  • プラットフォームごとに挙動が異なる可能性がある。
  • 音割れが発生する可能性がある。


本関数に1.0fを超えるボリューム値を設定した場合でも、 音声が元の波形データよりも大きな音量で再生されるかどうかは、 プラットフォームや音声圧縮コーデックの種別によって異なります。
そのため、マルチプラットフォームタイトルでボリュームを調整する場合には、 1.0fを超えるボリューム値を使用しないことをおすすめします。
(1.0fを超えるボリューム値を指定した場合、同じ波形データを再生した場合でも、 機種ごとに異なる音量で出力される可能性があります。)

また、音量を上げることが可能な機種であっても、 ハードウェアで出力可能な音量には上限があるため、 音割れによるノイズが発生する可能性があります。

参照
criAtomPlayer_GetVolume

◆ criAtomPlayer_GetVolume()

CriFloat32 CRIAPI criAtomPlayer_GetVolume ( CriAtomPlayerHn  player)

ボリュームの指定

引数
[in]playerAtomプレーヤーハンドル
戻り値
CriFloat32 ボリューム値
説明:
出力音声のボリュームを取得します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
参照
criAtomPlayer_SetVolume

◆ criAtomPlayer_SetChannelVolume()

void CRIAPI criAtomPlayer_SetChannelVolume ( CriAtomPlayerHn  player,
CriSint32  ch,
CriFloat32  vol 
)

チャンネル単位のボリューム指定

引数
[in]playerAtomプレーヤーハンドル
[in]chチャンネル番号
[in]volボリューム値(0.0f〜1.0f)
説明:
出力音声のボリュームをチャンネル単位で指定します。
本関数を使用することで、Atomプレーヤーで再生する音声のボリュームを、 チャンネル単位で自由に変更可能です。

第2引数のチャンネル番号は"音声データのチャンネル番号"を指定します。
(出力スピーカーのIDではありません。)
例えば、モノラル音声の0番のボリュームを変更した場合、 スピーカーから出力される音声のボリューム全てが変更されます。
criAtomPlayer_SetVolume 関数を実行するのと同じ動作をします。)
これに対し、ステレオ音声の0番のボリュームを変更すると、デフォルト設定 ではレフトスピーカーから出力される音声のボリュームのみが変更されます。
criAtomPlayer_SetSendLevel 関数を併用している場合は、 必ずしもレフトスピーカーから出力される音量のボリュームが変更される とは限りません。)

ボリューム値には、0.0f〜1.0fの範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。 \備考: ボリューム値に1.0fを超える値を指定した場合、値は1.0fにクリップされます。
(原音より大きな音量で音声が再生されることはありません。)
同様に、ボリューム値に0.0f未満の値を指定した場合も、値は0.0fにクリップされます。
(位相が反転されることはありません。)
本関数の設定値と、以下の関数のボリューム設定値は独立して制御されます。
参照
criAtomPlayer_SetVolume, criAtomPlayer_SetSendLevel, criAtomPlayer_SetPanAdx1Compatible

◆ criAtomPlayer_SetSendLevel()

void CRIAPI criAtomPlayer_SetSendLevel ( CriAtomPlayerHn  player,
CriSint32  ch,
CriAtomSpeakerId  spk,
CriFloat32  level 
)

センドレベルの設定

引数
[in]playerAtomプレーヤーハンドル
[in]chチャンネル番号
[in]spkスピーカーID
[in]levelボリューム値(0.0f〜1.0f)
説明:
センドレベルを指定します。
センドレベルは、音声データの各チャンネルの音声を、どのスピーカーから どの程度の音量で出力するかを指定するための仕組みです。

第2引数のチャンネル番号は"音声データのチャンネル番号"を指定します。
第3引数のスピーカーIDには、指定したチャンネル番号のデータをどのスピーカーから 出力するかを指定し、第4引数の送信時のボリュームを指定します。
ボリューム値は、0.0f〜1.0fの範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
例えば、音声データのチャンネル0番のデータをライトスピーカーから フルボリューム(1.0f)で出力したい場合、指定は以下のようになります。
@ CRIATOM_SPEAKER_FRONT_RIGHT
Definition: cri_atom.h:912
void CRIAPI criAtomPlayer_SetSendLevel(CriAtomPlayerHn player, CriSint32 ch, CriAtomSpeakerId spk, CriFloat32 level)
センドレベルの設定
チャンネル単位のボリューム指定( criAtomPlayer_SetChannelVolume 関数) と異なり、本関数では1つのチャンネルのデータを複数のスピーカーから異なる ボリュームで出力することが可能です。
例えば、チャンネル1番の音声をレフトスピーカーから0.3f、ライトスピーカー から0.5f、センタースピーカーから0.7fで出力したい場合、指定は以下のようになります。
@ CRIATOM_SPEAKER_FRONT_CENTER
Definition: cri_atom.h:913
@ CRIATOM_SPEAKER_FRONT_LEFT
Definition: cri_atom.h:911
尚、セットされたセンドレベルの値は criAtomPlayer_ResetSendLevel 関数で リセットすることが可能です。
\備考: センドレベルの設定には「自動設定」「手動設定」の2通りが存在します。
Atomプレーヤーを作成した直後や、 criAtomPlayer_ResetSendLevel 関数で センドレベルをクリアした場合、センドレベルの設定は「自動設定」となります。
本関数を実行した場合、センドレベルの設定は「手動設定」となります。

「自動設定」の場合、Atomプレーヤーは以下のように音声をルーティングします。

【モノラル音声を再生する場合】
チャンネル0の音声を左右のスピーカーから約0.7f(-3dB)のボリュームで出力します。

【ステレオ音声を再生する場合】
チャンネル0の音声をレフトスピーカーから、 チャンネル1の音声をライトスピーカーから出力します。

【4ch音声を再生する場合】
チャンネル0の音声をレフトスピーカーから、チャンネル1の音声をライトスピーカーから、 チャンネル2の音声をサラウンドレフトスピーカーから、 チャンネル3の音声をサラウンドライトスピーカーからでそれぞれ出力します。

【5ch音声を再生する場合】
チャンネル0の音声をレフトスピーカーから、チャンネル1の音声をライトスピーカーから、 チャンネル2の音声をセンタースピーカーから、 チャンネル3の音声をサラウンドレフトスピーカーから、 チャンネル4の音声をサラウンドライトスピーカーからそれぞれ出力します。
( 5ch音声を再生する場合、 criAtom_SetChannelMapping 関数で別の並び順に変更することも可能です。)

【5.1ch音声を再生する場合】
チャンネル0の音声をレフトスピーカーから、チャンネル1の音声をライトスピーカーから、 チャンネル2の音声をセンタースピーカーから、チャンネル3の音声をLFEから、 チャンネル4の音声をサラウンドレフトスピーカーから、 チャンネル5の音声をサラウンドライトスピーカーからそれぞれ出力します。
( 6ch音声を再生する場合、 criAtom_SetChannelMapping 関数で別の並び順に変更することも可能です。)

【7.1ch音声を再生する場合】
チャンネル0の音声をレフトスピーカーから、チャンネル1の音声をライトスピーカーから、 チャンネル2の音声をセンタースピーカーから、チャンネル3の音声をLFEから、 チャンネル4の音声をサラウンドレフトスピーカーから、 チャンネル5の音声をサラウンドライトスピーカーから、
チャンネル6の音声をサラウンドバックレフトスピーカーから、 チャンネル7の音声をサラウンドバックライトスピーカーからそれぞれ出力します。

これに対し、本関数を用いて「手動設定」を行った場合、音声データのチャンネル数に 関係なく、指定されたルーティングで音声が出力されます。
(センドレベルを設定していないチャンネルの音声は出力されません。)
センドレベルの設定をクリアし、ルーティングを「自動設定」の状態に戻したい場合は、 criAtomPlayer_ResetSendLevel 関数を実行してください。

ボリューム値に1.0fを超える値を指定した場合、値は1.0fにクリップされます。
(原音より大きな音量で音声が再生されることはありません。)
同様に、ボリューム値に0.0f未満の値を指定した場合も、値は0.0fにクリップされます。
(位相が反転されることはありません。)
本関数の設定値と、以下の関数のボリューム設定値は独立して制御されます。
注意
再生する音声データがマルチチャンネルのデータであっても、センドレベルが一部の チャンネルのみにしか設定されていない場合、センドレベルの設定されていない チャンネルの音声は出力されません。

本関数と criAtomPlayer_SetPanAdx1Compatible 関数を併用しないでください。
criAtomPlayer_SetPanAdx1Compatible 関数が、内部的に本関数を呼び出すため、 両者を併用した場合、後から実行した関数により設定が上書きされる可能性があります。
音源の定位をコントロールする際には、本関数かまたは criAtomPlayer_SetPanAdx1Compatible 関数 のいずれか一方のみをご利用ください。
(3Dパンを利用する場合は本関数を、2Dパンのみを行う場合は criAtomPlayer_SetPanAdx1Compatible 関数をご利用ください。)
本関数は一部の機種でのみ利用が可能です。
(プラットフォームのサウンドライブラリの仕様によっては実装が困難な場合が あるため、全ての環境で利用できるワケではありません。)
本関数が利用可能かどうかは、別途マニュアルの機種依存情報のページをご参照ください。
参照
criAtomPlayer_SetVolume, criAtomPlayer_SetChannelVolume, criAtomPlayer_SetPanAdx1Compatible, criAtomPlayer_ResetSendLevel, criAtom_SetChannelMapping

◆ criAtomPlayer_ResetSendLevel()

void CRIAPI criAtomPlayer_ResetSendLevel ( CriAtomPlayerHn  player)

センドレベルのリセット

引数
[in]playerAtomプレーヤーハンドル
説明:
センドレベルの設定をリセットします。
本関数を実行することで、過去にセットされたセンドレベル設定が全てクリアされます。
\備考: センドレベルの設定には「自動設定」「手動設定」の2通りが存在します。
Atomプレーヤーを作成した直後や、本関数でセンドレベルをリセットした場合、 センドレベルの設定は「自動設定」となります。
(自動設定時のルーティングについては、 criAtomPlayer_SetSendLevel 関数の説明を参照してください。)
注意
本関数と criAtomPlayer_ResetPan 関数を併用しないでください。
criAtomPlayer_ResetPan 関数が、内部的に本関数を呼び出すため、 両者を併用した場合、後から実行した関数により設定が上書きされる可能性があります。
参照
criAtomPlayer_SetSendLevel, criAtomPlayer_ResetPan

◆ criAtomPlayer_SetPanAdx1Compatible()

void CRIAPI criAtomPlayer_SetPanAdx1Compatible ( CriAtomPlayerHn  player,
CriSint32  ch,
CriFloat32  pan 
)

パンの設定

引数
[in]playerAtomプレーヤーハンドル
[in]chチャンネル番号
[in]panパン設定値(-1.0f〜1.0f)
説明:
パン(音源の定位位置)を指定します。
本関数を実行することで、モノラル音声やステレオ音声に対し、音源の定位位置を自由 にコントロールすることが可能です。

第2引数のチャンネル番号は"音声データのチャンネル番号"を指定します。
第3引数のパン設定値には、指定したチャンネル番号のデータの定位をどの位置にする かを指定します。
パン設定値は、-1.0f〜1.0fの範囲で実数値を指定します。
音源は、負の値を指定すると中央より左側(値が小さいほど左寄り)、0.0fを指定すると 中央、正の値を指定すると中央より右側(値が大きいほど右寄り)に定位します。
(キリのいい値では、-1.0fが左端、0.0fが中央、1.0fが右端になります。)
-1.0fと1.0fの間では、音源の位置はリニアに変化します。 つまり、パン設定値を一定量ずつ変化させながら-1.0〜1.0まで変更した場合、 音源は左端から右端へ一定速度で移動することになります。
備考:
パンの設定には「自動設定」「手動設定」の2通りが存在します。
Atomプレーヤーを作成した直後や、 criAtomPlayer_ResetPan 関数で パンをクリアした場合、パンの設定は「自動設定」となります。
本関数を実行した場合、パンの設定は「手動設定」となります。

「自動設定」の場合、Atomプレーヤーは以下のように音声をルーティングします。

【モノラル音声を再生する場合】
チャンネル0の音声を左右のスピーカーから約0.7f(-3dB)のボリュームで出力します。

【ステレオ音声を再生する場合】
チャンネル0の音声をレフトスピーカーから、 チャンネル1の音声をライトスピーカーから出力します。

これに対し、本関数を用いて「手動設定」を行った場合、音声データのチャンネル数に 関係なく、指定されたルーティングで音声が出力されます。
パンの設定をクリアし、ルーティングを「自動設定」の状態に戻したい場合は、 criAtomPlayer_ResetPan 関数を実行してください。
注意
本関数でパンをコントロール可能なのは、モノラル音声とステレオ音声のみです。
3ch以上の音声に対してパンをコントロールしたい場合には、 criAtomPlayer_SetSendLevel 関数を使用する必要があります。

再生する音声データがステレオの場合、チャンネル0番とチャンネル1番のそれぞれの について、独立してパンをコントロールすることが可能です。
ただし、設定されたパンがモノラル音声向けなのか、ステレオ音声向けなのかは区別 されないため、ステレオ設定用にパン設定を行ったAtomプレーヤーでモノラル音声を再生 した場合、意図としない位置に音源が定位する可能性があります。

再生する音声データがステレオにもかかわらず、どちらか一方のチャンネルに対して しかパンが設定されていない場合、パンを設定していないチャンネルの音声の定位位置 は 0.0f (中央からの出力)になります。
ステレオ音声のパンをコントロールする際には、必ず両方のチャンネルについてパンの 設定を行ってください。

本関数と criAtomPlayer_SetSendLevel 関数を併用しないでください。
本関数が内部的に criAtomPlayer_SetSendLevel 関数を呼び出すため、 両者を併用した場合、後から実行した関数により設定が上書きされる可能性があります。
音源の定位をコントロールする際には、本関数かまたは criAtomPlayer_SetSendLevel 関数 のいずれか一方のみをご利用ください。
(3Dパンを利用する場合は criAtomPlayer_SetSendLevel 関数を、2Dパンのみを行う場合は 本関数をご利用ください。)
参照
criAtomPlayer_SetVolume, criAtomPlayer_SetChannelVolume, criAtomPlayer_SetPanAdx1Compatible criAtomPlayer_ResetPan

◆ criAtomPlayer_ResetPan()

void CRIAPI criAtomPlayer_ResetPan ( CriAtomPlayerHn  player)

パンのリセット

引数
[in]playerAtomプレーヤーハンドル
説明:
パンの設定をリセットします。
本関数を実行することで、過去にセットされたパン設定が全てクリアされます。
\備考: パンの設定には「自動設定」「手動設定」の2通りが存在します。
Atomプレーヤーを作成した直後や、本関数でパンをリセットした場合、 パンの設定は「自動設定」となります。
(自動設定時のルーティングについては、 criAtomPlayer_SetPanAdx1Compatible 関数の説明を参照してください。)
注意
本関数と criAtomPlayer_ResetSendLevel 関数を併用しないでください。
本関数が内部的に criAtomPlayer_ResetSendLevel 関数を呼び出すため、 両者を併用した場合、後から実行した関数により設定が上書きされる可能性があります。
参照
criAtomPlayer_SetPanAdx1Compatible, criAtomPlayer_ResetSendLevel

◆ criAtomPlayer_SetFrequencyRatio()

void CRIAPI criAtomPlayer_SetFrequencyRatio ( CriAtomPlayerHn  player,
CriFloat32  ratio 
)

周波数調整比の設定

引数
[in]playerAtomプレーヤーハンドル
[in]ratio周波数調整比
説明:
音声の周波数調整比を設定します。
周波数調整比は、音声データの周波数と再生周波数の比率で、再生速度の倍率と等価です。
周波数比が1.0fを超える場合、音声データは原音より高速に再生され、 1.0f未満の場合は、音声データは原音より低速で再生されます。

周波数比は、音声のピッチにも影響します。
例えば、周波数比を1.0fで再生した場合、音声データは原音通りのピッチで再生されますが、 周波数比を2.0fに変更した場合、ピッチは1オクターブ上がます。
(再生速度が2倍になるため。)
例:
// 1/2の速度(-1オクターブ)で音声を再生するよう指定
void CRIAPI criAtomPlayer_SetFrequencyRatio(CriAtomPlayerHn player, CriFloat32 ratio)
周波数調整比の設定
注意
周波数比に1.0fを超える値を設定した場合、再生する音声のデータが通常より 速く消費されるため、音声データの供給や、データのデコードが間に合わなくなる 可能性があります。
(音切れ等の問題が発生する可能性があります。)
周波数比に1.0fを超える値を設定する場合には、Atomプレーヤー作成時に指定する 最大サンプリングレートの値を、周波数比を考慮した値に設定してください。
(Atomプレーヤー作成時に指定する CriAtomAdxPlayerConfig 構造体 の max_sampling_rate の値に、「原音のサンプリングレート×周波数比」で 計算される値を指定する必要があります。)
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);
:
// 周波数比を変更する
:
}
本関数は一部の機種でのみ利用が可能です。
(プラットフォームのサウンドライブラリの仕様によっては実装が困難な場合が あるため、全ての環境で利用できるワケではありません。)
本関数が利用可能かどうかは、別途マニュアルの機種依存情報のページをご参照ください。
参照
CriAtomAdxPlayerConfig, criAtomPlayer_CreateAdxPlayer, criAtomPlayer_SetMaxFrequencyRatio

◆ criAtomPlayer_SetMaxFrequencyRatio()

void CRIAPI criAtomPlayer_SetMaxFrequencyRatio ( CriAtomPlayerHn  player,
CriFloat32  ratio 
)

最大周波数調整比の設定

引数
[in]playerAtomプレーヤーハンドル
[in]ratio最大周波数調整比
説明:
音声の最大周波数調整比を設定します。
本関数で最大周波数調整比を指定することで、指定範囲内でのピッチ変更が即座に反映されるようになります。
備考:
Atom Ver.2.10.00以前のライブラリでは、ピッチを上げた際に音が途切れる (再生速度が速くなった結果、音声データの供給が足りなくなる)ケースがありました。
この対策として、Atom Ver.2.10.00ではピッチを上げても音が途切れないよう、 音声を充分にバッファリングしてからピッチを上げるよう動作を変更しています。
修正により、ピッチ操作によって音が途切れることはなくなりましたが、 ピッチを上げる際にバッファリングを待つ時間分だけピッチ変更が遅れる形になるため、 音の変化が以前のバージョンと比べて緩慢になる可能性があります。
(短時間にピッチを上げ下げするケースにおいて、音の鳴り方が変わる可能性があります。)

本関数で最大周波数調整比をあらかじめ設定した場合、 指定された速度を想定して常にバッファリングが行われるようになるため、 (指定された範囲内の周波数においては)バッファリングなしにピッチ変更が即座に行われます。
短時間にピッチを上げ下げするケースについては、 予想される最大周波数調整比をあらかじめ本関数で設定してから再生を行ってください。
参照
criAtomPlayer_SetFrequencyRatio

◆ criAtomPlayer_LimitLoopCount()

void CRIAPI criAtomPlayer_LimitLoopCount ( CriAtomPlayerHn  player,
CriSint32  count 
)

ループ回数の制限

引数
[in]playerAtomプレーヤーハンドル
[in]countループ制限回数
説明:
波形データのループ再生回数を制限します。
例えば、countに1を指定した場合、ループ波形データは1回のみループして再生を終了します。
(ループエンドポイントに到達後、1回だけループスタート位置に戻ります。)
備考:
デフォルト状態では、ループポイント付きの音声データは無限にループ再生されます。
ループ回数を一旦制限した後、ループ回数を再度無限回に戻したい場合には、 count に CRIATOMPLAYER_NO_LOOP_LIMITATION を指定してください。

count に CRIATOMPLAYER_IGNORE_LOOP を指定することで、 ループポイント付きの音声データをループさせずに再生することも可能です。
注意
ループ制限回数の指定は、音声再生開始前に行う必要があります。
再生中に本関数を実行しても、ループ回数は変更されません。
再生中の任意のタイミングでループ再生を停止したい場合、 ループ再生ではなく、シームレス連結再生で制御を行ってください。

本関数で指定したループ制限回数は、 あらかじめループポイントが設定された波形データを再生する場合にのみ適用されます。
波形データ自体にループポイントが設定されていない場合、 本関数を実行しても何の効果もありません。

本関数を使用してループ回数を指定した場合でも、 ループ終了時にループエンドポイント以降の波形データが再生されることはありません。
(指定回数分ループした後、ループエンドポイントで再生が停止します。)

例外的に、以下の条件を満たす場合に限り、(ループはされませんが) ワンショットでループポイント以降のデータを含めて再生することが可能です。
  • criatomencd.exe で -nodelterm を指定してデータをエンコードする。
  • 本関数に CRIATOMPLAYER_IGNORE_LOOP を指定してから再生を行う。


本関数でループ回数を制限できるのは、ADXコーデックとHCAコーデックのみです。
プラットフォーム依存の音声コーデックに対して本関数を実行しないでください。
(再生が終了しない、ノイズが発生する等の問題が発生します。)

◆ criAtomPlayer_SetHcaMxMixerId()

void CRIAPI criAtomPlayer_SetHcaMxMixerId ( CriAtomPlayerHn  player,
CriSint32  mixer_id 
)

HCA-MXデコード先ミキサIDの指定

引数
[in]playerAtomプレーヤーハンドル
[in]mixer_idミキサID
説明:
HCA-MXのデコード先ミキサIDを指定します。
注意
本関数は criAtomPlayer_CreateHcaMxPlayer 関数で作成されたプレーヤーに対してのみ効果があります。
(他の関数で作成されたプレーヤーに対しては、何の効果もありません。)

本関数は停止中のプレーヤーに対してのみ実行可能です。
参照
criAtomPlayer_CreateHcaMxPlayer

◆ criAtomPlayer_SetAsrRackId()

void CRIAPI criAtomPlayer_SetAsrRackId ( CriAtomPlayerHn  player,
CriSint32  rack_id 
)

ASRラックIDの指定

引数
[in]playerAtomプレーヤーハンドル
[in]rack_idラックID
説明:
ボイスの出力先のラックIDを指定します。
注意
本関数は停止中のプレーヤーに対してのみ実行可能です。

◆ criAtomPlayer_SetRawPcmFormat()

void CRIAPI criAtomPlayer_SetRawPcmFormat ( CriAtomPlayerHn  player,
CriAtomPcmFormat  pcm_format,
CriSint32  num_channels,
CriSint32  sampling_rate 
)

RawPCMフォーマットの指定

引数
[in]playerAtomプレーヤーハンドル
[in]pcm_formatRawPCMのデータフォーマット
[in]num_channelsチャンネル数
[in]sampling_rateサンプリングレート
説明:
RawPCMのデータフォーマット情報を指定します。
注意
本関数は criAtomPlayer_CreateRawPcmPlayer 関数で作成されたプレーヤーに対してのみ効果があります。
(他の関数で作成されたプレーヤーに対しては、何の効果もありません。)

本関数は停止中のプレーヤーに対してのみ実行可能です。
参照
criAtomPlayer_CreateRawPcmPlayer

◆ criAtomPlayer_SetDataRequestCallback()

void CRIAPI criAtomPlayer_SetDataRequestCallback ( CriAtomPlayerHn  player,
CriAtomPlayerDataRequestCbFunc  func,
void *  obj 
)

データ要求コールバック関数の登録

引数
[in]playerAtomプレーヤーハンドル
[in]funcデータ要求コールバック関数
[in]objユーザ指定オブジェクト
説明:
データ要求コールバック関数の登録を行います。

データ要求コールバックは、複数の音声データをシームレスに連結して再生する際に 使用します。
登録したコールバック関数は、Atomプレーヤーが連結再生用のデータを要求するタイミングで 実行されます。
(前回のデータを読み込み終えて、次に再生すべきデータを要求するタイミングで コールバック関数が実行されます。)
登録したコールバック関数内で criAtomPlayer_SetData 関数等を用いてAtomプレーヤーに データをセットすると、セットされたデータは現在再生中のデータに続いてシームレスに 連結されて再生されます。
また、コールバック関数内で criAtomPlayer_SetPreviousDataAgain 関数を実行することで、 同一データを繰り返し再生し続けることも可能です。
備考:
登録したコールバック関数内でデータを指定しなかった場合、現在のデータを再生し 終えた時点で、Atomプレーヤーのステータスが CRIATOMPLAYER_STATUS_PLAYEND に遷移します。

タイミング等の問題により、データを指定することができないが、ステータスを CRIATOMPLAYER_STATUS_PLAYEND に遷移させたくない場合には、コールバック関数内で criAtomPlayer_DeferCallback 関数を実行してください。
criAtomPlayer_DeferCallback 関数を実行することで、約1V後に再度データ要求 コールバック関数が呼び出されます。(コールバック処理をリトライ可能。)
ただし、 criAtomPlayer_DeferCallback 関数を実行した場合、再生が途切れる (連結箇所に一定時間無音が入る)可能性があります。
例:
以下のコードを実行すると、buffer1のデータとbuffer2のデータがシームレスに 連結して再生されます。
(その後はbuffer2のデータが繰り返し再生されます。)
// データ要求コールバック関数
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);
// セットされた音声データを再生
:
}
以下の処理により、同一音声データを無限にループ再生可能です。
// データ要求コールバック関数
void on_data_request(void *obj, CriAtomPlayerHn player)
{
// 前回再生したデータを再セット
}
main()
{
:
// データ要求コールバック関数の登録
criAtomPlayer_SetDataRequestCallback(player, on_data_request, NULL);
// 音声データをセット
criAtomPlayer_SetData(player, buffer, buffer_size);
// セットされた音声データを再生
:
}
注意
データ要求コールバック関数内で長時間処理をブロックすると、音切れ等の問題が 発生しますので、ご注意ください。

シームレス連結再生をサポートしないコーデックを使用している場合、 データ要求コールバック関数内で次のデータをセットしても、 データは続けて再生されません。
(HCA-MXやプラットフォーム固有の音声圧縮コーデックを使用している場合、 シームレス連結再生はできません。)

シームレス連結再生に使用する波形データのフォーマットは、 全て同じにする必要があります。
具体的には、以下のパラメーターが同じである必要があります。
  • コーデック
  • チャンネル数
  • サンプリングレート

パラメーターが異なる波形を連結しようとした場合、 意図としない速度で音声データが再生されたり、 エラーコールバックが発生する等の問題が発生します。

コールバック関数内でループ付きの波形データをセットした場合でも、 ループ再生は行われません。
(ループポイントが無視され、再生が終了します。)

コールバック関数内でAtomプレーヤーを破棄しないでください。
コールバックを抜けた後も、しばらくの間はサーバー処理内で当該ハンドルのリソース が参照されるため、アクセス違反等の重大な問題が発生する可能性があります。
コールバック関数は1つしか登録できません。
登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。

funcにNULLを指定するとことで登録済み関数の登録解除が行えます。

参照
CriAtomPlayerDataRequestCbFunc, criAtomPlayer_SetData, criAtomPlayer_SetPreviousDataAgain, criAtomPlayer_DeferCallback

◆ criAtomPlayer_SetStatusChangeCallback()

void CRIAPI criAtomPlayer_SetStatusChangeCallback ( CriAtomPlayerHn  player,
CriAtomPlayerStatusChangeCbFunc  func,
void *  obj 
)

ステータス変更コールバック関数の登録

引数
[in]playerAtomプレーヤーハンドル
[in]funcステータス変更コールバック関数
[in]objユーザ指定オブジェクト
説明:
ステータス変更コールバック関数を登録します。
登録したコールバック関数は、Atomプレーヤーのステータスが更新されるタイミングで 実行されます。
変更されたステータスについては、コールバック関数の引数として渡されるAtomプレーヤー ハンドルに対し、 criAtomPlayer_GetStatus 関数を実行することで取得可能です。

ステータス変更コールバックを利用することで、Atomプレーヤーのステータス変更に 合わせて特定の処理を行うことが可能になります。
例えば、以下のようなコードで、ステータスが CRIATOMPLAYER_STATUS_ERROR になった 場合にリードエラーメッセージを表示することが可能です。
// ステータス変更コールバック関数
void on_status_change(void *obj, CriAtomPlayerHn player)
{
// ステータスの取得
status = criAtomPlayer_GetStatus(player);
if (status == CRIATOMPLAYER_STATUS_ERROR) {
// リードエラー発生時の処理
:
}
}
main()
{
:
// ステータス変更コールバック関数の登録
criAtomPlayer_SetStatusChangeCallback(player, on_status_change, NULL);
// 音声ファイルをセット
criAtomPlayer_SetFile(player, NULL, "sample.adx");
// セットされた音声ファイルを再生
:
}
void CRIAPI criAtomPlayer_SetStatusChangeCallback(CriAtomPlayerHn player, CriAtomPlayerStatusChangeCbFunc func, void *obj)
ステータス変更コールバック関数の登録
enum CriAtomPlayerStatusTag CriAtomPlayerStatus
再生ステータス
備考:
厳密には、ステータス遷移〜コールバック関数実行までの間に他の処理が割り込みで動作する 余地があるため、ステータス遷移とコールバック関数実行のタイミングがズレる可能性があります。
注意
ステータス変更コールバック関数内で長時間処理をブロックすると、音切れ等の問題 が発生しますので、ご注意ください。

ステータス変更コールバック関数を抜けるまでは、Atomプレーヤーのステータスが 変更されることはありません。
そのため、ステータス変更コールバック関数内でAtomプレーヤーのステータス遷移を 待つ処理を行うと、デッドロックが発生し、処理が先に進まなくなります。

コールバック関数内でAtomプレーヤーを破棄しないでください。
コールバックを抜けた後も、しばらくの間はサーバー処理内で当該ハンドルのリソース が参照されるため、アクセス違反等の重大な問題が発生する可能性があります。
コールバック関数は1つしか登録できません。
登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。

funcにNULLを指定するとことで登録済み関数の登録解除が行えます。
参照
criAtomPlayer_GetStatus

◆ criAtomPlayer_SetParameterChangeCallback()

void CRIAPI criAtomPlayer_SetParameterChangeCallback ( CriAtomPlayerHn  player,
CriAtomPlayerParameterChangeCbFunc  func,
void *  obj 
)

パラメーター変更コールバック関数の登録

引数
[in]playerAtomプレーヤーハンドル
[in]funcパラメーター変更コールバック関数
[in]objユーザ指定オブジェクト
説明:
パラメーター変更コールバック関数を登録します。
登録したコールバック関数は、Atomプレーヤーのパラメーターが更新されるタイミングで実行されます。
注意
パラメーター変更コールバック関数内で長時間処理をブロックすると、音切れ等の問題 が発生しますので、ご注意ください。

コールバック関数内でAtomプレーヤーを破棄しないでください。
コールバックを抜けた後も、しばらくの間はサーバー処理内で当該ハンドルのリソース が参照されるため、アクセス違反等の重大な問題が発生する可能性があります。
コールバック関数は1つしか登録できません。
登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。

funcにNULLを指定するとことで登録済み関数の登録解除が行えます。

◆ criAtomPlayer_SetFilterCallback()

void CRIAPI criAtomPlayer_SetFilterCallback ( CriAtomPlayerHn  player,
CriAtomPlayerFilterCbFunc  func,
void *  obj 
)

波形フィルターコールバック関数の登録

引数
[in]playerAtomプレーヤーハンドル
[in]func波形フィルターコールバック関数
[in]objユーザ指定オブジェクト
説明:
デコード結果の PCM データを受け取るコールバック関数を登録します。
登録されたコールバック関数は、 Atom プレーヤーが音声データをデコードしたタイミングで呼び出されます。
注意
ステータス変更コールバック関数内で長時間処理をブロックすると、音切れ等の問題 が発生しますので、ご注意ください。

HCA-MXコーデックやプラットフォーム固有の音声圧縮コーデックを使用している場合、 フィルターコールバックは利用できません。

コールバック関数は1つしか登録できません。
登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。

funcにNULLを指定するとことで登録済み関数の登録解除が行えます。
参照
CriAtomPlayerFilterCbFunc

◆ criAtomPlayer_SetLoadRequestCallback()

void CRIAPI criAtomPlayer_SetLoadRequestCallback ( CriAtomPlayerHn  player,
CriAtomPlayerLoadRequestCbFunc  func,
void *  obj 
)

ロード要求コールバック関数の登録

引数
[in]playerAtomプレーヤーハンドル
[in]funcロード要求コールバック関数
[in]objユーザ指定オブジェクト
説明:
ロード要求コールバック関数の登録を行います。

ロード要求コールバックは、Atomプレーヤーのファイルロード状態を監視する際に使用します。
(デバッグ目的の関数なので、通常本関数を使用する必要はありません。)
注意
ロード要求コールバック関数内で長時間処理をブロックすると、音切れ等の問題が 発生しますので、ご注意ください。

コールバック関数内でAtomプレーヤーを破棄しないでください。
コールバックを抜けた後も、しばらくの間はサーバー処理内で当該ハンドルのリソース が参照されるため、アクセス違反等の重大な問題が発生する可能性があります。
コールバック関数は1つしか登録できません。
登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。

funcにNULLを指定するとことで登録済み関数の登録解除が行えます。
参照
CriAtomPlayerLoadRequestCbFunc

◆ criAtomPlayer_SetHcaFormat()

void CRIAPI criAtomPlayer_SetHcaFormat ( CriAtomPlayerHn  player,
CriSint32  num_channels,
CriSint32  sampling_rate,
CriSint32  bitrate 
)

HCAフォーマットの指定

引数
[in]playerAtomプレーヤー
[in]num_channelsチャンネル数
[in]sampling_rateサンプリング周波数
[in]bitrateビットレート
説明:
HCAデータのフォーマット情報を設定します。
本関数を実行することで、ヘッダーレスのHCAデータを再生することが可能になります。