CRIWARE Unity Plugin Manual  Last Updated: 2022-08-24
CriAtomExPlayback 構造体

再生音オブジェクト [詳解]

クラス

struct  TrackInfo
 再生トラック情報 [詳解]
 

公開型

enum  Status { Prep = 1, Playing, Removed }
 再生ステータス [詳解]
 

公開メンバ関数

void Stop (bool ignoresReleaseTime)
 再生音の停止 [詳解]
 
void Pause ()
 再生音のポーズ [詳解]
 
void Resume (CriAtomEx.ResumeMode mode)
 再生音のポーズ解除 [詳解]
 
bool IsPaused ()
 再生音のポーズ状態の取得 [詳解]
 
bool GetFormatInfo (out CriAtomEx.FormatInfo info)
 再生音のフォーマット情報の取得 [詳解]
 
Status GetStatus ()
 再生ステータスの取得 [詳解]
 
long GetTime ()
 再生時刻の取得 [詳解]
 
long GetTimeSyncedWithAudio ()
 音声に同期した再生時刻の取得 [詳解]
 
bool GetNumPlayedSamples (out long numSamples, out int samplingRate)
 再生サンプル数の取得 [詳解]
 
long GetSequencePosition ()
 シーケンス再生位置の取得 [詳解]
 
int GetCurrentBlockIndex ()
 再生音のカレントブロックインデックスの取得 [詳解]
 
bool GetTrackInfo (out TrackInfo info)
 再生トラック情報の取得 [詳解]
 
bool GetBeatSyncInfo (out CriAtomExBeatSync.Info info)
 ビート同期情報の取得 [詳解]
 
void SetNextBlockIndex (int index)
 再生音のブロック遷移 [詳解]
 
bool SetBeatSyncOffset (short timeMs)
 ビート同期オフセットの設定 [詳解]
 

詳解

再生音オブジェクト

説明:
CriWare.CriAtomExPlayer::Start 関数実行時に返されるオブジェクトです。
プレーヤ単位ではなく、 CriWare.CriAtomExPlayer::Start 関数で再生した個々の音声に対して パラメータ変更や状態取得を行いたい場合、本オブジェクトを使用して制御を行う必要があります。
参照
CriAtomExPlayer::Start

列挙型メンバ詳解

enum Status
strong

再生ステータス

説明:
AtomExプレーヤで再生済みの音声のステータスです。
CriWare.CriAtomExPlayback::GetStatus 関数で取得可能です。

再生状態は、通常以下の順序で遷移します。
  1. Prep
  2. Playing
  3. Removed .
備考:
StatusはAtomExプレーヤのステータスではなく、 プレーヤで再生を行った( CriWare.CriAtomExPlayer::Start 関数を実行した) 音声のステータスです。

再生中の音声リソースは、発音が停止された時点で破棄されます。
そのため、以下のケースで再生音のステータスが Removed に遷移します。
  • 再生が完了した場合。
  • Stop 関数で再生中の音声を停止した場合。
  • 高プライオリティの発音リクエストにより再生中のボイスが奪い取られた場合。
  • 再生中にエラーが発生した場合。 .
参照
CriAtomExPlayer::Start, CriAtomExPlayback::GetStatus, CriAtomExPlayback::Stop
列挙値
Prep 

再生準備中

Playing 

再生中

Removed 

削除された

関数詳解

void Stop ( bool  ignoresReleaseTime)
inline

再生音の停止

引数
ignoresReleaseTimeリリース時間を無視するかどうか (False = リリース処理を行う、True = リリース時間を無視して即座に停止する)
説明:
再生音単位で停止処理を行います。
本関数を使用することで、プレーヤによって再生された音声を、プレーヤ単位ではなく、 個別に停止させることが可能です。
備考:
AtomEx プレーヤによって再生された全ての音声を停止したい場合、 本関数ではなく CriWare.CriAtomExPlayer::Stop 関数をご利用ください。
CriWare.CriAtomExPlayer::Stop 関数は、そのプレーヤで再生中の全ての音声を停止します。)
注意:
本関数で再生音の停止を行うと、再生中の音声のステータスは Removed に遷移します。
停止時にボイスリソースも破棄されるため、一旦 Removed 状態に遷移した再生オブジェクトからは、 以降情報を取得できなくなります。
参照
CriAtomExPlayer::Stop, CriAtomExPlayback::GetStatus
void Pause ( )
inline

再生音のポーズ

説明:
再生音単位でポーズを行います。

本関数を使用することで、プレーヤによって再生された音声を、プレーヤ単位ではなく、 個別にポーズさせることが可能です。
備考:
プレーヤによって再生された全ての音声をポーズしたい場合、 本関数ではなく CriWare.CriAtomExPlayer::Pause 関数をご利用ください。
参照
CriAtomExPlayback::IsPaused, CriAtomExPlayer::Pause, CriAtomExPlayback::Resume
void Resume ( CriAtomEx.ResumeMode  mode)
inline

再生音のポーズ解除

引数
modeポーズ解除対象
説明:
再生音単位で一時停止状態の解除を行います。
引数(mode)に PausedPlayback を指定して本関数を実行すると、 ユーザが CriWare.CriAtomExPlayer::Pause 関数(または CriWare.CriAtomExPlayback::Pause 関数)で一時停止状態になった音声の再生が再開されます。
引数(mode)に PreparedPlayback を指定して本関数を実行すると、 ユーザが CriWare.CriAtomExPlayer::Prepare 関数で再生準備を指示した音声の再生が開始されます。
備考:
CriWare.CriAtomExPlayer::Pause 関数でポーズ状態のプレーヤに対して CriWare.CriAtomExPlayer::Prepare 関数で再生準備を行った場合、その音声は PausedPlayback 指定のポーズ解除処理と、 PreparedPlayback 指定のポーズ解除処理の両方が行われるまで、再生が開始されません。

CriWare.CriAtomExPlayer::Pause 関数か CriWare.CriAtomExPlayer::Prepare 関数かに関係なく、 常に再生を開始したい場合には、引数(mode)に AllPlayback を指定して本関数を実行してください。
参照
CriAtomExPlayback::IsPaused, CriAtomExPlayer::Resume, CriAtomExPlayer::Pause
bool IsPaused ( )
inline

再生音のポーズ状態の取得

戻り値
ポーズ中かどうか(False = ポーズされていない、True = ポーズ中)
説明:
再生中の音声がポーズ中かどうかを返します。
参照
CriAtomExPlayback::Pause
bool GetFormatInfo ( out CriAtomEx.FormatInfo  info)
inline

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

引数
infoフォーマット情報
戻り値
情報が取得できたかどうか( True = 取得できた、 False = 取得できなかった)
説明:
CriWare.CriAtomExPlayer::Start 関数で再生された音声のフォーマット情報を取得します。

フォーマット情報が取得できた場合、本関数は true を返します。
指定したボイスが既に消去されている場合等には、本関数は false を返します。
備考:
複数の音声データを含むキューを再生した場合、最初に見つかった音声 データの情報が返されます。
注意:
本関数は、音声再生中のみフォーマット情報を取得可能です。
再生準備中や再生終了後、発音数制御によりボイスが消去された場合には、 フォーマット情報の取得に失敗します。
参照
CriAtomExPlayer::Start, CriAtomExPlayer::GetStatus
Status GetStatus ( )
inline

再生ステータスの取得

戻り値
再生ステータス
説明:
CriWare.CriAtomExPlayer::Start 関数で再生された音声のステータスを取得します。
備考:
CriWare.CriAtomExPlayer::GetStatus 関数がAtomExプレーヤのステータスを返すのに対し、 本関数は再生済みの個々の音声のステータスを取得します。

再生中の音声のボイスリソースは、以下の場合に削除されます。
  • 再生が完了した場合。
  • Stop 関数で再生中の音声を停止した場合。
  • 高プライオリティの発音リクエストにより再生中のボイスが奪い取られた場合。
  • 再生中にエラーが発生した場合。
そのため、 CriWare.CriAtomExPlayback::Stop 関数を使用して明示的に再生を停止したか、 その他の要因によって再生が停止されたかの違いに関係なく、 再生音のステータスはいずれの場合も Removed に遷移します。
(エラーの発生を検知する必要がある場合には、本関数ではなく、 CriWare.CriAtomExPlayer::GetStatus 関数で AtomEx プレーヤのステータスをチェックする必要があります。)
参照
CriAtomExPlayer::Start, CriAtomExPlayer::GetStatus, CriAtomExPlayback::Stop
long GetTime ( )
inline

再生時刻の取得

戻り値
再生時刻(ミリ秒単位)
説明:
CriWare.CriAtomExPlayer::Start 関数で再生された音声の再生時刻を取得します。

再生時刻が取得できた場合、本関数は 0 以上の値を返します。
指定したボイスが既に消去されている場合等には、本関数は負値を返します。
備考:
本関数が返す再生時刻は「再生開始後からの経過時間」です。
ループ再生時や、シームレス連結再生時を行った場合でも、 再生位置に応じて時刻が巻き戻ることはありません。

CriWare.CriAtomExPlayer::Pause 関数でポーズをかけた場合、 再生時刻のカウントアップも停止します。
(ポーズを解除すれば再度カウントアップが再開されます。)
本関数で取得可能な時刻の精度は、サーバ処理の周波数に依存します。
(時刻の更新はサーバ処理単位で行われます。)
より精度の高い時刻を取得する必要がある場合には、本関数の代わりに CriWare.CriAtomExPlayback::GetNumPlayedSamples 関数を使用し、 再生済みサンプル数を取得してください。
注意:
戻り値の型は long ですが、現状、32bit以上の精度はありません。
再生時刻を元に制御を行う場合、約24日で再生時刻が異常になる点に注意が必要です。
( 2147483647 ミリ秒を超えた時点で、再生時刻がオーバーフローし、負値になります。)

本関数は、音声再生中のみ時刻を取得可能です。
CriWare.CriAtomExPlayer::GetTime 関数と異なり、本関数は再生中の音声ごとに時刻を 取得可能ですが、再生終了時刻を取ることができません。)
再生終了後や、発音数制御によりボイスが消去された場合には、 再生時刻の取得に失敗します。
(負値が返ります。)

デバイスのリードリトライ処理等により、音声データの供給が一時的に途切れた場合でも、 再生時刻のカウントアップが途切れることはありません。
(データ供給停止により再生が停止した場合でも、時刻は進み続けます。)
そのため、本関数で取得した時刻を元に映像との同期を行った場合、 リードリトライ発生毎に同期が大きくズレる可能性があります。
波形データと映像の同期を厳密に取る必要がある場合は、本関数の代わりに CriWare.CriAtomExPlayback::GetNumPlayedSamples 関数を使用し、 再生済みサンプル数との同期を取ってください。
参照
CriAtomExPlayer::Start, CriAtomExPlayer::GetTime, CriAtomExPlayback::GetNumPlayedSamples
long GetTimeSyncedWithAudio ( )
inline

音声に同期した再生時刻の取得

戻り値
再生時刻(ミリ秒単位)
説明:
CriWare.CriAtomExPlayer::Start 関数で再生された音声の再生時刻を取得します。

再生時刻が取得できた場合、本関数は 0 以上の値を返します。
指定したボイスが既に消去されている場合等には、本関数は負値を返します。
備考:
CriWare.CriAtomExPlayback::GetTime 関数が返す「再生開始後からの経過時間」とは 異なり、本関数からは再生中の音声に同期した再生時刻を取得することが 可能です。
デバイスのリードリトライ処理等により、音声データの供給が途切れて 再生が停止した場合、再生時刻のカウントアップが一時的に停止します。
再生された音声に厳密に同期した処理を行いたい場合は、本関数で 取得した再生時刻を用いてください。
ただし、ループ再生時や、シームレス連結再生時を行った場合でも、 再生位置に応じて時刻が巻き戻ることはありません。
また、波形の詰まっていないシーケンスキューや 再生波形が切り替わるブロックシーケンスキューに対しては、正常に再生時刻を 取得することができません。

CriWare.CriAtomExPlayer::Pause 関数でポーズをかけた場合、 再生時刻のカウントアップも停止します。
(ポーズを解除すれば再度カウントアップが再開されます。)

本関数を用いて再生時刻を取得するには、 CriWare.CriAtomExPlayer::CriAtomExPlayer(bool) 関数を 用いて、音声同期タイマを有効にするフラグを指定してプレーヤの作成を行ってください。
注意:
戻り値の型は long ですが、現状、32bit以上の精度はありません。
再生時刻を元に制御を行う場合、約24日で再生時刻が異常になる点に注意が必要です。
( 2147483647 ミリ秒を超えた時点で、再生時刻がオーバーフローし、負値になります。)

本関数は、音声再生中のみ時刻を取得可能です。
CriWare.CriAtomExPlayer::GetTime 関数と異なり、本関数は再生中の音声ごとに時刻を 取得可能ですが、再生終了時刻を取ることができません。)
再生終了後や、発音数制御によりボイスが消去された場合には、 再生時刻の取得に失敗します。
(負値が返ります。)

本関数は内部で時刻計算を行っており、プラットフォームによっては処理負荷が 問題になる可能性があります。また、アプリケーションの同じフレーム内であっても、 呼び出し毎に更新された時刻を返します。
アプリケーションによる再生時刻の利用方法にもよりますが、基本的に本関数を用いた 時刻取得は1フレームにつき一度のみ行うようにしてください。

参照
CriAtomExPlayer::Start, CriAtomExPlayback::GetTime, CriAtomExPlayback::GetNumPlayedSamples, CriAtomExPlayer::CriAtomExPlayer(bool)
bool GetNumPlayedSamples ( out long  numSamples,
out int  samplingRate 
)
inline

再生サンプル数の取得

引数
numSamples再生済みサンプル数
samplingRateサンプリングレート
戻り値
サンプル数が取得できたかどうか( True = 取得できた、 False = 取得できなかった)
説明:
CriWare.CriAtomExPlayer::Start 関数で再生された音声の再生サンプル数、 およびサンプリングレートを返します。

再生サンプル数が取得できた場合、本関数は true を返します。
指定したボイスが既に消去されている場合等には、本関数は false を返します。
(エラー発生時は numSamples や samplingRate の値も負値になります。)
備考:
再生済みサンプル数の値の精度は、プラットフォーム SDK のサウンドライブラリに依存します。
(プラットフォームによって、再生済みサンプル数の正確さは異なります。)

複数の音声データを含むキューを再生した場合、最初に見つかった音声 データの情報が返されます。
注意:
デバイスのリードリトライ処理等により、音声データの供給が途切れた場合、 再生サンプル数のカウントアップが停止します。
(データ供給が再開されれば、カウントアップが再開されます。)

本関数は、音声再生中のみ再生サンプル数を取得可能です。
再生終了後や、発音数制御によりボイスが消去された場合には、 再生サンプル数の取得に失敗します。
参照
CriAtomExPlayer::Start
long GetSequencePosition ( )
inline

シーケンス再生位置の取得

戻り値
シーケンス再生位置(ミリ秒単位)
説明:
CriWare.CriAtomExPlayer::Start 関数で再生された音声のシーケンス再生位置を取得します。

再生位置が取得できた場合、本関数は 0 以上の値を返します。
指定したシーケンスが既に消去されている場合等には、本関数は負値を返します。
備考:
本関数が返す再生時刻は「シーケンスデータ上の再生位置」です。
シーケンスループや、ブロック遷移を行った場合は、巻き戻った値が返ります。

キュー指定以外での再生ではシーケンサーが動作しません。キュー再生以外の再生に対して 本関数は負値を返します。

CriWare.CriAtomExPlayer::Pause 関数でポーズをかけた場合、再生位置の更新も停止します。
(ポーズを解除すれば再度更新が再開されます。)
本関数で取得可能な時刻の精度は、サーバ処理の周波数に依存します。
(時刻の更新はサーバ処理単位で行われます。)
注意:
戻り値の型は long ですが、現状、32bit以上の精度はありません。
再生位置を元に制御を行う場合、シーケンスループ等の設定がないデータでは 約24日で再生位置が異常になる点に注意が必要です。
( 2147483647 ミリ秒を超えた時点で、再生位置がオーバーフローし、負値になります。)

本関数は、音声再生中のみ位置を取得可能です。
再生終了後や、発音数制御によりシーケンスが消去された場合には、 再生位置の取得に失敗します。
(負値が返ります。)
int GetCurrentBlockIndex ( )
inline

再生音のカレントブロックインデックスの取得

戻り値
カレントブロックインデックス
説明:
CriWare.CriAtomExPlayer::Start 関数で再生されたブロックシーケンスの、 カレントブロックインデックスを取得します。
備考:
再生IDにより再生しているデータがブロックシーケンスではない場合は、 0xFFFFFFFF が返ります。
参照
CriAtomExPlayer::Start, CriAtomExPlayer::SetFirstBlockIndex, CriAtomExPlayback::SetNextBlockIndex
bool GetTrackInfo ( out TrackInfo  info)
inline

再生トラック情報の取得

引数
info再生トラック情報
戻り値
取得に成功したか
説明:
CriWare.CriAtomExPlayer::Start 関数で再生されたキューのトラック情報を取得します。
取得できるトラック情報はキュー直下の情報だけです、サブシーケンスやキューリンクの情報は取得できません。
備考:
以下に該当するデータを再生中の場合、トラック情報の取得に失敗します。
  • キュー以外のデータを再生している。(トラック情報が存在しないため)
  • 再生中のキューがポリフォニックタイプ、またはセレクタ参照のスイッチタイプである。 (トラック情報が複数存在する可能性があるため)
  • 再生中のキューがトラック遷移タイプである。(遷移により再生トラックが変わるため)
参照
CriAtomExPlayer::Start
bool GetBeatSyncInfo ( out CriAtomExBeatSync.Info  info)
inline

ビート同期情報の取得

引数
infoビート同期情報
戻り値
取得に成功したか
説明:
CriWare.CriAtomExPlayer::Start 関数で再生されたキューのビート同期情報を取得します。
現在のBPM、小節のカウント、拍のカウント、拍の進捗割合(0.0~1.0)を取得することができます。
キューにはビート同期情報が設定されている必要があります。
キューリンクやスタートアクションで再生しているキューの情報は取得できません。
備考:
以下に該当するデータを再生中の場合、ビート同期情報の取得に失敗します。
  • キュー以外のデータを再生している。(ビート同期情報が存在しないため)
  • ビート同期情報が設定されていないキューを再生している。
  • ビート同期情報が設定されているキューを"間接的"に再生している。 (キューリンクやスタートアクションで再生している)
参照
CriAtomExPlayer::Start
void SetNextBlockIndex ( int  index)
inline

再生音のブロック遷移

引数
indexブロックインデックス
説明:
再生音単位でブロック遷移を行います。
本関数を実行すると、指定したIDの音声がブロックシーケンスの場合はデータの 設定に従った任意の遷移タイミングで指定ブロックに遷移します。
備考:
再生開始ブロックの指定は CriWare.CriAtomExPlayer::SetFirstBlockIndex 関数を使用して行い、 再生中のブロックインデックス取得は CriWare.CriAtomExPlayback::GetCurrentBlockIndex 関数を使用します。
参照
CriAtomExPlayer::SetFirstBlockIndex, CriAtomExPlayback::GetCurrentBlockIndex
bool SetBeatSyncOffset ( short  timeMs)
inline

ビート同期オフセットの設定

引数
timeMsオフセット時間(ミリ秒)
戻り値
オフセットの設定に成功したか
説明:
再生中のキューのビート同期オフセットを設定します。
キューにはビート同期情報が設定されている必要があります。
キューリンクやスタートアクションで再生しているキューの情報は取得できません。
備考:
以下に該当するデータを再生中の場合、ビート同期オフセットの設定に失敗します。
  • キュー以外のデータを再生している。(ビート同期情報が存在しないため)
  • ビート同期情報が設定されていないキューを再生している。
  • ビート同期情報が設定されているキューを"間接的"に再生している。 (キューリンクやスタートアクションで再生している)

この構造体詳解は次のファイルから抽出されました: