CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
CriAtomExPlayback结构体 参考

播放声音对象 更多...

struct  TrackInfo
 播放音轨信息 更多...
 

Public 类型

enum  Status { Prep = 1, Playing, Removed }
 播放状态 更多...
 

Public 成员函数

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 函数播放的每个音频(而不是整个Player)更改参数或获取状态。
参见
CriAtomExPlayer::Start

成员枚举类型说明

enum Status
strong

播放状态

说明:
用AtomExPlayer已播放完毕的音频状态。
可通过 CriWare.CriAtomExPlayback::GetStatus 函数获取。

播放状态会按照以下顺序进行转换。
  1. Prep
  2. Playing
  3. Removed .
备注:
Status不是AtomExPlayer的状态, 而是用Player播放的( 执行 CriWare.CriAtomExPlayer::Start 函数的) 音频的状态。

正在播放的音频资源会在发声停止后被丢弃。
因此,以下情况下,播放声音的状态会转换为 Removed。
  • 播放完成时。
  • 通过 Stop 函数使正在播放的音频停止时。
  • 因高优先级的发声请求,导致正在播放的Voice被剥夺时。
  • 播放过程中发生错误时。 .
参见
CriAtomExPlayer::Start, CriAtomExPlayback::GetStatus, CriAtomExPlayback::Stop
枚举值
Prep 

播放准备中

Playing 

正在播放

Removed 

已删除

成员函数说明

void Stop ( bool  ignoresReleaseTime)
inline

停止播放声音

参数
ignoresReleaseTime是否忽略Release时间 (False = 执行Release处理,True = 忽略Release时间并立即停止)
说明:
以播放声音为单位停止处理。
通过使用本函数,除了以Player为单位之外, 还能够以对从Player播放的各音频进行停止。
备注:
如想要停止通过 AtomExPlayer播放的所有音频, 请不要使用本函数,而是使用 CriWare.CriAtomExPlayer::Stop 函数。
CriWare.CriAtomExPlayer::Stop 函数可以停止该Player正在播放的所有音频。)
注意:
如果用本函数停止了播放的声音,则正在播放的音频的状态会转换为 Removed。
停止时,Voice资源也将被丢弃,因此一旦转换为 Removed 状态后,将无法从播放对象, 继续获取以后的信息。
参见
CriAtomExPlayer::Stop, CriAtomExPlayback::GetStatus
void Pause ( )
inline

暂停播放声音

说明:
以播放声音为单位进行暂停。

通过使用本函数,除了以Player为单位之外, 还能够以对从Player播放的各音频进行暂停。
备注:
如想要暂停通过Player播放的所有音频, 请不要使用本函数,而是使用 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 函数暂停的Player使用了 CriWare.CriAtomExPlayer::Prepare 函数进行播放准备, 在 PausedPlayback 和 PreparedPlayback 触发的取消暂停处理完成后,播放才会开始。

如果想要Player无论是否由 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。
对于指定的Voice已经被删除等情况,本函数会返回false。
备注:
如果播放了包含多个音频数据的Cue,则将会返回第一个被找到的音频 数据的信息。
注意:
本函数仅在音频正在播放时可以获取格式信息。
播放准备中和播放结束后,如果因发声数控制而导致Voice被删除时, 获取格式信息会失败。
参见
CriAtomExPlayer::Start, CriAtomExPlayer::GetStatus
Status GetStatus ( )
inline

获取播放状态

返回
播放状态
说明:
CriWare.CriAtomExPlayer::Start 函数获取已播放音频的状态。
备注:
此函数获取已播放的单个音频的状态 (与返回 AtomExPlayer 状态的 CriWare.CriAtomExPlayer::GetStatus 函数不同)。

正在播放的音频的 Voice 资源将在以下情况下被释放。
  • 播放完成
  • 正在播放的音频被Stop函数停止
  • 正在使用的Voice已被另一个具有更高优先级的播放请求夺走
  • 播放过程中发生错误
因此,无论是使用 CriWare.CriAtomExPlayback::Stop 函数显式停止播放还是因其他原因停止播放,播放状态都将转换为“Removed”。
(要检测错误,您需要使用 CriWare.CriAtomExPlayer::GetStatus 函数检查 AtomExPlayer的状态,而不是使用本函数。)
参见
CriAtomExPlayer::Start, CriAtomExPlayer::GetStatus, CriAtomExPlayback::Stop
long GetTime ( )
inline

获取播放时间

返回
播放时间(毫秒单位)
说明:
获取由 CriWare.CriAtomExPlayer::Start 函数播放的音频的播放时间。

可以获取播放时间时,本函数将返回大于0的值。
对于指定的Voice已经被删除等情况,本函数会返回负值。
备注:
本函数返回的播放时间是“播放开始后的经过时间”。
即使在循环播放时或无缝连接播放时执行, 也无法按照播放位置来倒回时间。

CriWare.CriAtomExPlayer::Pause 函数暂停时, 播放时间累计也将停止。
(解除了暂停状态后,累计将重新开始)
可以用本函数获取的时间的精度取决于Server处理的频率。
(时间的更新是以Server处理为单位来执行。)
如果要获取更高精度的时间,请使用 CriWare.CriAtomExPlayback::GetNumPlayedSamples 函数来 代替本函数, 获取播放完毕的样本数。
注意:
返回值的类型是 long,但目前精度不会超过32bit以上。
请注意按照播放时间来进行控制时,大概24天就会出现播放时间异常。
(超过 2147483647 毫秒后,播放时间会溢出,更改为负值。)

本函数仅在音频正在播放时可以获取时间。
(与 CriWare.CriAtomExPlayer::GetTime 函数不同,本函数可以按照正在播放的各音频来 获取时间,但无法获取播放结束时间。)
播放结束后以及因发声数控制而导致Voice被消掉时, 播放时间获取会失败。
(会返回负值。)

即使由于设备的读取重试处理等,导致音频数据的提供被暂时中断, 播放时间的累计也不会中断。
(即使因为数据提供停止导致播放停止,时间也会继续。)
因此,如果按照用本函数获得的时间来进行映像同步, 每次发生读取重试时,同步可能会出现很大的偏差。
需要严格控制波形数据和映像的同步时,请使用 CriWare.CriAtomExPlayback::GetNumPlayedSamples 函数 来代替本函数, 与已播放完毕的样本数进行同步。
参见
CriAtomExPlayer::Start, CriAtomExPlayer::GetTime, CriAtomExPlayback::GetNumPlayedSamples
long GetTimeSyncedWithAudio ( )
inline

获取与音频同步的播放时间

返回
播放时间(毫秒单位)
说明:
获取由 CriWare.CriAtomExPlayer::Start 函数播放的音频的播放时间。

可以获取播放时间时,本函数将返回大于0的值。
对于指定的Voice已经被删除等情况,本函数会返回负值。
备注:
使用此函数可以获取与音频同步的播放时间 (与 CriWare.CriAtomExPlayback::GetTime 函数返回的“从播放开始经过的时间”不同)。
如果由于读取重试处理等而中断音频数据供应并停止播放,则播放时间计数将暂时停止。
如果要执行与播放的音频严格同步的处理,请使用本函数获取播放时间。
但是,在循环播放或无缝连接播放时,时间不会根据播放位置进行重置。
此外,对于未完全放满波形的序列Cue,或在播放时会切换波形的块序列Cue,将无法正常获取播放时间。

使用 CriWare.CriAtomExPlayer::Pause 函数暂停时,播放时间计数也将暂停。
(如果暂停解除,计时则将重新开始。)

要使用本函数获取播放时间,请使用 CriWare.CriAtomExPlayer::CriAtomExPlayer(bool) 函数并将参数设置为 true 以在创建Player时启用音频同步计时器标记。
注意:
返回值的类型是 long,但目前精度不会超过32bit以上。
请注意按照播放时间来进行控制时,大概24天就会出现播放时间异常。
(超过 2147483647 毫秒后,播放时间会溢出,更改为负值。)

本函数仅在音频正在播放时可以获取时间。
(与 CriWare.CriAtomExPlayer::GetTime 函数不同,本函数可以按照正在播放的各音频来 获取时间,但无法获取播放结束时间。)
播放结束后以及因发声数控制而导致Voice被消掉时, 播放时间获取会失败。
(会返回负值。)

本函数在内部会计算时间,在某些平台上可能会 造成处理负荷问题。此外,即使是应用程序的相同帧内, 每次调用都会返回更新后的时间。
虽然也可以通过应用程序来使用播放时间,但基本上使用本函数来 获取时间时,请针对每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。
对于指定的Voice已经被删除等情况,本函数会返回false。
(如果发生错误,numSamples 和 samplingRate 的值将为负数。)
备注:
播放完毕的样本数的值精度取决于平台SDK 的音频库。
(根据平台,播放完毕的样本数的正确程度会有差异。)

如果播放了包含多个音频数据的Cue,则将会返回第一个被找到的音频 数据的信息。
注意:
如果因设备的读取重试处理等,造成音频数据提供中断时, 播放样本数的累计将会停止。
(数据提供重新开始后,累计也将会重新开始。)

本函数仅在音频播放过程中可以获取播放样本数。
播放结束后以及因发声数控制而导致Voice被消掉时, 播放样本数获取会失败。
参见
CriAtomExPlayer::Start
long GetSequencePosition ( )
inline

获取序列播放位置

返回
序列播放位置(毫秒单位)
说明:
获取由 CriWare.CriAtomExPlayer::Start 函数播放的音频的序列播放位置。

如果可以获取播放位置,本函数将返回大于0的值。
对于指定的序列已经被删除等情况,本函数会返回负值。
备注:
本函数返回的播放时间是“序列数据上的播放位置”。
如果执行了序列循环和块转换,则将会返回倒回的值。

除了指定Cue来播放之外,其他播放中的Sequencer不起作用。针对Cue播放以外的播放 本函数会返回负值。

CriWare.CriAtomExPlayer::Pause 函数暂停时,播放位置的更新也将停止。
(解除了暂停状态后,更新将重新开始)
可以用本函数获取的时间的精度取决于Server处理的频率。
(时间的更新是以Server处理为单位来执行。)
注意:
返回值的类型是 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 函数播放的Cue的音轨信息。
只有直接位于Cue中的信息才可被获取。无法获取子序列和Cue链接的信息。
备注:
正在播放以下数据时,音轨信息获取会失败。
  • 正在播放Cue以外的数据。(理由是没有音轨信息)
  • 正在播放的Cue是复音类型或选择器参照切换类型。 (理由是可能存在多个音轨信息)
  • 正在播放的Cue为音轨转换类型。(理由是转换会造成播放的音轨改变)
参见
CriAtomExPlayer::Start
bool GetBeatSyncInfo ( out CriAtomExBeatSync.Info  info)
inline

获取节拍同步信息

参数
info节拍同步信息
返回
是否成功获取
说明:
获取由 CriWare.CriAtomExPlayer::Start 函数播放的Cue的节拍同步信息。
可以获取当前的BPM、小节数、节拍数和节拍进度百分比(0.0-1.0)。
该Cue本身必须设置有节拍同步信息。
对于通过Cue链接或Start Action播放的Cue,无法获取信息。
备注:
正在播放以下数据时,节拍同步信息获取会失败。
  • 正在播放Cue以外的数据。(理由是没有节拍同步信息)
  • 正在播放未设置节拍同步信息的Cue。
  • 正在"间接地"播放设置了节拍同步信息的Cue。 (正在播放Cue链接和开始Action)
参见
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偏移时间(毫秒)
返回
偏移量是否已成功设置
说明:
设置正在播放的Cue的节拍同步偏移量。
此Cue必须设有节拍同步信息。
对于通过Cue链接或Start Action播放的Cue,无法取得信息。
备注:
如果正在播放以下任何数据,节拍同步偏移设置将失败。
  • 正在播放Cue以外的数据。(因为不存在节拍同步信息)
  • 正在播放没有节拍同步信息的Cue。
  • 正在 "间接" 播放(通过Cue链接或Start Action进行播放)包括节拍同步信息的Cue。

该结构体的文档由以下文件生成: