CRIWARE Unity Plugin Manual
Last Updated: 2024-07-12
获取与音频同步的播放时间
通过
CriWare.CriAtomSource::time
等获取的播放时间是“从执行开始播放以来经过的时间”。
如果音频数据的提供暂时中断,或者音频播放受系统中断影响而受阻,则播放的音频与获取的播放时间之间会存在差异。
如果要控制音乐游戏的谱面等与音频播放严格同步,可以通过
CriWare.CriAtomExPlayback::GetTimeSyncedWithAudio
使用音频同步计时器获取播放时间。
直接使用 CriAtomExPlayer 时
要启用音频同步计时器,需要创建一个专用的
CriWare.CriAtomExPlayer
。
您可以按如下方式从脚本创建
CriWare.CriAtomExPlayer
来播放Cue并获得与音频同步的播放时间。
/* 创建启用了 enableAudioSyncedTimer 的播放器 */
CriAtomExPlayer player =
new
CriAtomExPlayer(
true
);
/* 设置要在播放器中播放的Cue Sheet和Cue名 */
player.SetCue(CriAtom.GetAcb(
"<CueSheetName>"
),
"<CueName>"
);
/* 开始播放 */
CriAtomExPlayback playback = player.Start();
...
/* 获取与音频同步的播放时间 */
long playTime = playback.GetTimeSyncedWithAudio();
使用 CriAtomSource 时
通过定义一个继承了
CriWare.CriAtomSource
的此应用程序专用的类,可以在使用CriAtomSource组件功能的同时获取与音频同步的播放时间。
如下所示,您可以重载初始化过程并创建一个专用的
CriWare.CriAtomExPlayer
。
using
UnityEngine
;
using
System
.Collections;
public
class
MyAtomSource : CriAtomSource {
protected
override
void
InternalInitialize()
{
CriAtomPlugin.InitializeLibrary();
/* 创建启用了 enableAudioSyncedTimer 的播放器 */
this.player =
new
CriAtomExPlayer(
true
);
this.source =
new
CriAtomEx3dSource();
}
}
Copyright (c) CRI Middleware Co., Ltd. 1.8.10