CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
CriAtomSourceBase类 参考abstract

播放音频组件的基类 更多...

类 CriAtomSourceBase 继承关系图:
CriAtomSourceForAsset CriAtomSource

Public 类型

enum  Status {
  Stop, Prep, Playing, PlayEnd,
  Error
}
 显示CriAtomSource的播放状态的值。 更多...
 

Public 成员函数

CriAtomExPlayback Play (string cueName)
 开始播放指定的Cue名的Cue。 更多...
 
CriAtomExPlayback Play (int cueId)
 开始播放所指定的Cue ID的Cue。 更多...
 
void Stop ()
 停止播放。 更多...
 
void Pause (bool sw)
 暂停/重新开始。 更多...
 
bool IsPaused ()
 获取暂停状态。 更多...
 
void SetBusSendLevel (string busName, float level)
 指定总线名,设置总线发送Level。 更多...
 
void SetBusSendLevel (int busId, float level)
 
void SetBusSendLevelOffset (string busName, float levelOffset)
 指定总线名,通过指定偏移来设置总线发送Level。 更多...
 
void SetBusSendLevelOffset (int busId, float levelOffset)
 
void SetAisacControl (string controlName, float value)
 指定AISAC控制器名,设置AISAC控制器值。
 
void SetAisac (string controlName, float value)
 
void SetAisacControl (uint controlId, float value)
 指定AISAC控制器名,设置AISAC控制器值。
 
void SetAisac (uint controlId, float value)
 
void AttachToAnalyzer (CriAtomExOutputAnalyzer analyzer)
 添加至输出数据的解析模块。
 
void DetachFromAnalyzer (CriAtomExOutputAnalyzer analyzer)
 从输出数据的解析模块上切断。
 

属性

CriAtomExPlayer player [get, protected set]
 内部使用的 CriAtomExPlayer。 更多...
 
CriAtomEx3dSource source [get, protected set]
 内部使用的 CriAtomEx3dSource。 更多...
 
bool playOnStart [get, set]
 设置/获取是否在执行开始时进行播放。 更多...
 
bool use3dPositioning [get, set]
 设置是否使用3D定位。 更多...
 
bool freezeOrientation [get, set]
 设置是否固定3D声源的方向。 更多...
 
bool use3dRandomization [get, set]
 设置是否使用3D声源位置的随机化。 更多...
 
uint randomPositionListMaxLength [get, set]
 设置用于3D声源位置随机化的坐标列表的最大元素数 更多...
 
CriAtomRegion region3d [get, set]
 设置和获取声源的3D区域 更多...
 
CriAtomListener listener [get, set]
 设置和获取音源的收听者 更多...
 
CriAtomRegion regionOnStart [get, set]
 设置初始区域。 更多...
 
CriAtomListener listenerOnStart [get, set]
 设置初始收听者。 更多...
 
bool loop [get, set]
 循环播放切换 更多...
 
float volume [get, set]
 设置/获取音量。 更多...
 
float pitch [get, set]
 设置/获取音高。 更多...
 
float pan3dAngle [get, set]
 设置/获取Panning 3D角度。 更多...
 
float pan3dDistance [get, set]
 设置/获取Panning 3D距离。 更多...
 
int startTime [get, set]
 设置/获取播放开始位置。 更多...
 
long time [get]
 获取播放时间(毫秒单位)。 更多...
 
Status status [get]
 获取状态。 更多...
 
bool attenuationDistanceSetting [get, set]
 设置/获取距离衰减有效化设置。 更多...
 
bool androidUseLowLatencyVoicePool [get, set]
 设置/获取是否从低延迟播放Voice池进行播放。 更多...
 

详细描述

播放音频组件的基类

说明:
此为播放音频组件的基类。
通过继承本类,可以自定义用于音频播放的组件。

成员枚举类型说明

enum Status
strong

显示CriAtomSource的播放状态的值。

说明:
可以通过 CriAtomSource::status 属性获取。
枚举值
Stop 

已停止

Prep 

播放准备中

Playing 

正在播放

PlayEnd 

结束播放

Error 

发生错误

成员函数说明

CriAtomExPlayback Play ( string  cueName)
inline

开始播放指定的Cue名的Cue。

参数
cueNameCue名
返回
播放ID
说明:
播放此函数所指定Cue名称的Cue(而忽略属性中的Cue指定设置)。
CriAtomExPlayback Play ( int  cueId)
inline

开始播放所指定的Cue ID的Cue。

参数
cueIdCue ID
返回
播放ID
说明:
播放此函数所指定的Cue ID的Cue(而忽略属性中的Cue指定设置)。
void Stop ( )
inline

停止播放。

说明:
如果针对正在播放音频的 CriAtomSource 组件执行本函数, 则 CriAtomSource 组件的播放会停止(停止文件读取和发声), 状态转换为停止状态( Stop )。
如果针对已停止的 CriAtomSource 组件(状态为 Playend 和 Error 的 CriAtomSource 组件 )执行本函数, 将 CriAtomSource 组件的状态更改为 Stop。
注意:
针对正在播放音频的 CriAtomSource 组件执行了本函数时, 状态不一定会立即更改为 Stop。
(在更改为停止状态前,需要一定时间。)
void Pause ( bool  sw)
inline

暂停/重新开始。

参数
swTrue:暂停、False:重新开始
说明:
播放的暂停/暂停解除。
为 sw 指定 True 来执行本函数后, CriAtomSource 组件正在播放的音频将会暂停。
为 sw 指定 False 来执行本函数后, CriAtomSource 组件将会解除暂停,原本暂停的音频会恢复播放。
bool IsPaused ( )
inline

获取暂停状态。

返回
暂停状态
说明:
获取暂停的ON/OFF。
参见
CriAtomSource::Pause
void SetBusSendLevel ( string  busName,
float  level 
)
inline

指定总线名,设置总线发送Level。

备注:
播放Cue时,如果数据侧设置了总线发送Level,则在调用本函数后, 将会适用数据侧设置的值和本函数的设置值的乘积后的值。
例如,数据侧的总线发送Level为0.8f, CriAtomSource 的总线发送Level为0.5f时, 实际适用的总线发送Level是0.4f。
void SetBusSendLevel ( int  busId,
float  level 
)
inline
弃用:
将被删除的非推荐API。 请考虑使用 CriAtomSource.SetBusSendLevel(string, float)
void SetBusSendLevelOffset ( string  busName,
float  levelOffset 
)
inline

指定总线名,通过指定偏移来设置总线发送Level。

说明:
播放Cue时,如果数据侧设置了总线发送Level,则在调用本函数后, 将会适用数据侧设置的值和本函数的设置值的加算后的值。
例如,数据侧的总线发送Level为0.2f, CriAtomSource 的总线发送Level为0.5f时, 实际适用的总线发送Level是0.7f。
void SetBusSendLevelOffset ( int  busId,
float  levelOffset 
)
inline
弃用:
将被删除的非推荐API。 请考虑使用 CriAtomSource.SetBusSendLevelOffset(string, float)
void SetAisac ( string  controlName,
float  value 
)
inline
弃用:
将被删除的非推荐API。 请考虑使用 CriAtomSourceBase.SetAisacControl
void SetAisac ( uint  controlId,
float  value 
)
inline
弃用:
将被删除的非推荐API。 请考虑使用 CriAtomSourceBase.SetAisacControl

属性说明

CriAtomExPlayer player
getprotected set

内部使用的 CriAtomExPlayer。

说明:
如果要直接控制 CriAtomExPlayer,请从属性获取 CriAtomExPlayer。
CriAtomEx3dSource source
getprotected set

内部使用的 CriAtomEx3dSource。

说明:
如果要直接控制CriAtomEx3dSource,请从此属性获取CriAtomEx3dSource句柄。
bool playOnStart
getset

设置/获取是否在执行开始时进行播放。

说明:
如果设置了True,可以在执行开始时开始播放。
备注:
播放开始的时机是 MonoBehaviour::Start 函数被调用的时机。
注意:
如果在 WebGL 等异步 ACB 加载有效的平台上执行本标记的 执行开始时的Cue播放,则请务必指定Cue Sheet名。
如不指定,则无法判断应该等待加载的Cue Sheet, 因此Cue的播放会失败。
bool use3dPositioning
getset

设置是否使用3D定位。

说明:

在预设下,3D定位的使用为有效状态。
本参数可以在任意时机进行切换。
bool freezeOrientation
getset

设置是否固定3D声源的方向。

说明:

默认设置根据GameObject的方向设置3D声源的方向。
如果将此参数设置为true,则可以将声源的方向固定为设置参数时的值。
bool use3dRandomization
getset

设置是否使用3D声源位置的随机化。

说明:

预设情况下,禁用声源位置随机化。
该参数可以随时切换。
uint randomPositionListMaxLength
getset

设置用于3D声源位置随机化的坐标列表的最大元素数

说明:

预设情况下,列表元素的最大数量为0。
此参数仅在CriAtomSource执行Awake之前可以更改。
CriAtomRegion region3d
getset

设置和获取声源的3D区域

注意:
3D定位为无效时,无法设置区域。
CriAtomListener listener
getset

设置和获取音源的收听者

备注:
如果未设置收听者,将使用最靠近声源的收听者。
注意:
3D定位为无效时,无法设置收听者。
CriAtomRegion regionOnStart
getset

设置初始区域。

说明:
设置执行Start时所适用的区域。
仅在3D定位有效时适用。
空(null)时不会适用。
CriAtomListener listenerOnStart
getset

设置初始收听者。

说明:
设置执行Start时应用的收听者。
仅在启用3D定位时适用。
为空(null)时不适用。
备注:
如果未设置收听者,将使用最靠近声源的收听者。
bool loop
getset

循环播放切换

参数
loop循环切换(True: 循环模式,False: 解除循环模式)
说明:
针对没有循环点的波形数据,切换循环播放的ON/OFF。
预设值是循环OFF。
如果将循环播放设置为ON,则播放至音频末尾后不会结束播放,而是会返回开头并循环播放。
注意:
本函数的设置会针对波形数据进行适用。
针对序列数据执行本函数时, 序列数据内的各波形数据会更改为循环播放的形式。

本函数只能指定没有循环点的波形数据。
如果播放带有循环点的波形数据,则无论本函数的指定如何, 都将按照波形数据的循环位置来进行循环播放。

本函数会在内部使用无缝连接播放功能。
因此,如果使用不支持无缝连接播放的格式(HCA-MX等), 循环位置上会出现某种程度的静音。

本参数仅在 CriAtomSource 组件处于停止状态, 且 CriAtomSource::Play 函数被调用时会被评价。
float volume
getset

设置/获取音量。

说明:
设置/获取输出音频的音量(音量)。
音量值是针对音频数据的振幅的倍率(单位不是分贝)。
例如,指定为1.0f时,将按照原有的音量输出原音。
指定为0.5f时,将会以等同于原音波形一半振幅的音量(-6dB) 来输出音频。
指定为0.0f时,音频将被静音(更改为无音状态)。
音量的预设值是1.0f。
备注:
播放Cue时,如果数据侧设置了音量,则在调用本函数后, 将会适用数据侧设置的值和本函数的设置值的乘积后的值。
例如,数据侧的音量为0.8f, CriAtomSource 的音量为0.5f时, 实际适用的音量是0.4f。
float pitch
getset

设置/获取音高。

说明:
设置/获取输出音频的音高(声音的高度)。
音高是以音分为单位进行指定。
1音分是1音阶的1/1200。半音是100音分。
例如,指定为100.0f时,音高会提高半音。指定为-100.0f时,音高会下降半音。
音高的预设值是0.0f。
备注:
播放Cue时,如果数据侧设置了音高,则在调用本函数后, 将会适用数据侧设置的值和本函数的设置值的加算后的值。
例如,数据侧的音高为-100.0f, CriAtomSource 的音高为200.0f时, 实际适用的音高是100.0f。
float pan3dAngle
getset

设置/获取Panning 3D角度。

说明:
设置/获取Panning 3D角度。
角度是以度为单位进行指定。
可以设置的最大角度是前方0度,右方向(顺时针)180.0f,左方向(逆时针)-180.0f。
例如,设置为45.0f时,将会定位至右前方45度。设置为-45.0f时,将会定位至左前方45度。
备注:
播放Cue时,如果数据侧设置了Panning 3D角度,则在调用本函数后, 将会适用数据侧设置的值和本函数的设置值的加算后的值。
例如,数据侧的Panning 3D角度为15.0f, CriAtomSource 的Panning 3D角度为30.0f时, 实际适用的Panning 3D角度是45.0f。
如果实际适用的Panning 3D角度是超过180.0f的值,则将会对值进行-360.0f,将其设置至范围内。
同样,如果实际适用的音量值是小于-180.0f的值,则将会对值进行+360.0f,将其设置至范围内。
(即使进行+360.0f, -360.0f,定位也不会改变,所以实际上可以超过-180.0f~180.0f的范围进行设置。)
float pan3dDistance
getset

设置/获取Panning 3D距离。

说明:
设置/获取通过Panning 3D进行内部Panning时的距离。
距离是将收听者位置作为0.0f,将扬声器所在的圆周作为1.0f,在-1.0f~1.0f的范围内进行指定。
如果指定为负值,则Panning 3D角度会反转180度,定位至反方向。
备注:
播放Cue时,如果数据侧设置了Panning 3D距离,则在调用本函数后, 将会适用数据侧设置的值和本函数的设置值的乘积后的值。
例如,数据侧的Panning 3D距离为0.8f, CriAtomSource 的Panning 3D距离为0.5f时, 实际适用的Panning 3D距离是0.4f。
如果实际适用的Panning 3D距离是超过1.0f的值,则该值将会被裁剪至1.0f。
同样,如果实际适用的Panning 3D距离是小于-1.0f的值,则该值将会被裁剪至-1.0f。
int startTime
getset

设置/获取播放开始位置。

说明:
设置/获取播放开始位置。 设置了播放开始位置后,可以从中间开始播放音频数据。
播放开始位置是以毫秒为单位进行指定。例如,设置为 10000 后, 下一个要播放的音频数据是从第 10 秒的位置开始播放。
备注:
从音频数据的途中开始播放时,比从音频数据开头开始播放,发声开始的 时机会延迟。
这是因为在解析了音频数据的头文件后,跳转至指定位置, 才重新读取数据并开始播放。
注意:
指定起始位置播放序列时,放置于起始位置之前的波形数据不会被播放。
(序列内的各波形不会被从中间开始播放。)
long time
get

获取播放时间(毫秒单位)。

说明:
如果成功获取了播放时间,本属性会显示 0 以上的值。
如果无法获取播放时间(例如Voice获取失败等),本函数将显示负值。
备注:
如果以同一 CriAtomSource 组件播放了多个音频, 则将会显示"最后"播放的音频的时间。
如果需要针对多个音频检查播放时间, 请按照要播放的音频的数量来创建 CriAtomSource 组件。

本属性所显示的播放时间是“播放开始后的经过时间”。
即使在循环播放时或无缝连接播放时执行, 也无法按照播放位置来倒回时间。

CriAtomSource::Pause 函数暂停时, 播放时间累计也将停止。
(解除了暂停状态后,累计将重新开始)
注意:
返回值的类型是 long,但目前精度不会超过32bit以上。
请注意按照播放时间来进行控制时,大概24天就会出现播放时间异常。
(超过 2147483647 毫秒后,播放时间会溢出,更改为负值。)

发声数控制导致正在播放的音频被消掉时, 播放时间的累计也会在此时停止。
此外,如果在播放开始时未通过控制发声数来分配Voice, 则本函数无法返回正确的时间。
(会返回负值。)

如果因文件读取来不及等理由,导致音频数据的提供被暂时中断时, 播放时间的累计也不会中断。
(即使因为数据提供停止导致播放停止,时间也会继续。)
因此,如果按照用本函数获得的时间来进行影像同步, 每次发生数据提供不足时,同步可能会出现很大的偏差。
Status status
get

获取状态。

说明:
获取 CriAtomSource 组件的状态。
状态是指显示 CriAtomSource 组件的播放状态的值,存在如以下五种值。
  1. Stop
  2. Prep
  3. Playing
  4. Playend
  5. Error


创建 CriAtomSource 组件后,CriAtomSource 组件的状态是停止状态 ( Stop )。
CriAtomSource.Play 函数等开始播放后,CriAtomSource 组件的状态将会更改为准备状态 ( Prep )。
( Prep 是正在等待数据提供和解码开始的状态。)
为播放开始提供了足够的数据后,CriAtomSource 组件将会更改为播放状态 ( Playing )。
此外,播放过程中如发生了错误,CriAtomSource 组件会将状态更改为错误状态 ( Error )。

通过检查 CriAtomSource 组件的状态,并根据状态进行切换处理, 可创建出与音频播放状态相关联的程序。
bool attenuationDistanceSetting
getset

设置/获取距离衰减有效化设置。

说明:
设置/获取是否将距离衰减的音量变动设为有效。
预设是有效。
bool androidUseLowLatencyVoicePool
getset

设置/获取是否从低延迟播放Voice池进行播放。

说明:
如果设置了True,可以使用低延迟播放Voice Pool来开始播放。
备注:
将本标记设置为有效时,需要事先设置好CriWareInitializer的低延迟播放Voice池数。

该类的文档由以下文件生成: