CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
FAQ
本部分回答了有关CRIWARE Unity Plugin的常问问题。
以下为常见问题和其相应答案。
如需了解详细技术信息,请查看 "How To" 和 "Troubleshooting" 部分。

CRIWARE SDK for Unity最高支持Unity的什么版本?

[共通:0001]

【问题】

最高能支持到Unity的什么版本?

【回答】

您可以从如下的版本说明页面确认內容。
发行说明
例如,以下示例兼容Unity 2018或更高版本。
## PC(Windows)
### 动作条件
- Unity 2018或更高版本
- Windows 7 / 8.1 / 10 / 11
- DirectX End-User Runtime (June 2010)
- Microsoft .NET Framework 3.5 SP1
- Microsoft .NET Framework 4.0

需要注意的是,由于Unity新版本的设计规格的改变或者潜在的Bug,使CRIWARE SDK for Unity不能正常工作的情况也是存在的。
遇到这样的情况请联系我们。我们会做相应的验证与处理。

"Page TOP"


CRIWARE Library Initializer(CRIWARE文件库初始化器) 没有被开启

[ADX:0001]

【问题】

CRIWARE Library Initializer 为什么CRIWARE Library Initializer (CriWareInitializer) 在已经创建并配置完成的情况下依然没有被开启?
[例子 1]
尽管[Hca Mx Voice]已经在[Atom Config]中开启,HCA-MX所编写的数据却无法播放。
[例子 2]
尽管[Number of Decoders]已经在[Mana Config]中增加,CRI Mana Player的创建却依然失败。

【回答】

ADX或Sofdec的组件或许在 CriWareInitializer脚本运行前已经被使用。
请为 CriWareInitializer 脚本设置一个比使用ADX和Sofdec脚本更高的"Script Execution Order"。
[设置Execution Order(执行顺序)]
  • (1) 在Unity Editor的目录中,选择Edit -> Project Settings -> Script Execution Order
  • (2) 在Inspector窗口中,MonoManager中的脚本的优先顺序已被列好。
  • (3) 如果 CriWareInitializer 不出现在列表中,点击Inspector底端的 "+" 按键来添加它。
  • (4) 为 CriWareInitializer 设置一个比其他使用ADX和Sofdec的脚本都高的优先顺序。
    数值越小就更优先。
  • (5) 使用同样的步骤来配置 CriWareErrorHandler
    如需查出初始化错误,请为 CriWareErrorHandler 设置一个比 CriWareInitializer 更高的优先顺序。

"Page TOP"


CRIWARE Library Initializer的设置在更新后无法使用

[ADX:0002]

【问题】

为什么 CRIWARE Library Initializer的设置在更新(导入)CRIWARE插件后就会重置?

【回答】

当CRIWARE插件被再次导入时,为 CRIWARE Library Initializer 设置好的 "Script Execution Order" 顺序就会被重置。
如果该设置被应用程序更改了,你需要再次设置优先顺序。
如需了解设置 "Script Execution Order" 的步骤,请查看 [ADX:0001] 的答案。

"Page TOP"


当播放音频时出现以下错误:"W2010072212: No voice pool can play the specified format(无语音库能够播放该指定格式). "

[ADX:0003]

【问题】

为什么当我播放一个音频时 CRI错误回调显示了"W2010072212: No voice pool can play the specified format"?

【回答】

该错误是由于没有语音库能够播放你的音频数据(由其编码导致)而引发的。
可能的原因如下:
  • (a) 你尝试在不使用 CRIWARE Library Initializer 的情况下,播放用HCA-MX编码的音频数据。
  • (b) CRIWARE Library Initializer 中的语音库配置不正确。
  • (c) CRIWARE Library Initializer 的 "Script Execution Order" 设置不正确,并且语音库配置被关闭。
  • (d) 数据使用了平台无法播放的音频编解码格式。
在没有使用CRIWARE Library Initializer,你只能播放使用ADX和HCA编译码器所编码的音频数据。
如果你想要播放HCA-MX编码的数据,请在CRIWARE Library Initializer里使用 Atom Config 中的 Hca Mx Voice Pool Config
如果CRIWARE Library Initializer在使用ADX/Sofdec的脚本运行之后执行,那么你将不能使用CRIWARE Library Initializer的设置。请为CRIWARE Library Initializer 确认 "Script Execution Order"。
如需了解设置 "Script Execution Order" 的步骤,请查看 [ADX:0001] 的答案。

"Page TOP"


当播放音频时出现以下错误回调:"E2010031002:The sampling rate of audio data (##### Hz) is not same as mixer's(##### Hz)(音频数据的采样率和混音器的采样率不同)."

[ADX:0004]

【问题】

为什么当我播放一个音频时,CRI错误回调 显示了"E2010031002: The sampling rate of audio data (##### Hz) is not the same as the mixer's(##### Hz)"?

【回答】

该错误是由于你尝试播放的音频数据的采样率与输出设定不符而引发的。
可能的原因如下:
  • (a) 你在不使用 CRIWARE Library Initializer CRIWARE Library Initializer 的情况下,尝试播放不是44.1 kHz的音频数据。
  • (b) 在CRIWARE Library Initializer中,Output Sampling Rate 的设置与数据的设置不符。
  • (c) CRIWARE Library Initializer 的 "Script Execution Order" 设置不正确,并且Output Sampling Rate设置也被关闭。
如果没有使用CRIWARE Library Initializer,那么采样率就会是44.1 kHz。
如需以其他采样率播放音频,请在CRIWARE Library Initializer中,将Atom ConfigOutput Sampling Rate设定为该采样率。
如果CRIWARE Library Initializer在使用ADX/Sofdec的脚本运行之后执行,那么你将不能使用CRIWARE Library Initializer的设置。 请为CRIWARE Library Initializer 确认 "Script Execution Order"。
如需了解设置 "Script Execution Order" 的步骤,请查看 [ADX:0001] 的答案。

"Page TOP"


"in-game preview(在游戏中预览)"失败并显示一条信息:"Connection to a preview process failed(与预览过程的连接失败)."

[ADX:0005]

【问题】

为什么我不能在Windows的ADX里使用in-game preview?CRI Atom Craft的日志窗口显示以下信息:
  • "Connection to a preview process failed"

【回答】

Unity项目可能关闭了in-game preview(游戏中预览)功能。
请确认Unity项目的以下设置。
  • (a) 没有使用 CRIWARE Library Initializer
  • (b) 在CRIWARE Library Initializer中,没有选中Use In-Game Preview功能。
  • (c) CRIWARE Library Initializer 的 "Script Execution Order" 设置不正确,并且Use In-Game Preview设置也被关闭。
如果没有使用CRIWARE Library Initializer,那么in-game preview就无法使用。
如果CRIWARE Library Initializer在使用ADX/Sofdec的脚本运行之后执行,那么你将不能使用CRIWARE Library Initializer的设置。 请为CRIWARE Library Initializer 确认 "Script Execution Order"。
如需了解设置 "Script Execution Order" 的步骤,请查看 [ADX:0001] 的答案。

"Page TOP"


"in-game preview(在游戏中预览)"失败并显示一条信息:"A CueSheet that does not support in-game has been loaded(载入了不支持in-game的CueSheet)" 或者 "A CueSheet for the preview is missing, or ...(用于预览的CueSheet不存在,或...)"

[ADX:0006]

【问题】

为什么我不能在Windows的ADX里使用in-game preview?CRI Atom Craft的日志窗口显示以下信息:
  • "A CueSheet that does not support in-game has been loaded"
  • "A CueSheet for the preview is missing, or the CueSheet binary is too large for in-game(用于预览的CueSheet不存在,或CueSheet的二进制代码太大,无法用于in-game)"

【回答】

当你在CRI Atom Craft中建造CueSheet时,请确保你选中了Binary output for in-game preview
用于in-game preview的二进制代码输出于 PC/InGamePreview/ 子文件夹,其文件夹等级与存放其他普通的二进制代码的文件夹不同。
请确保在InGamePreview文件夹创建的文件存储于Unity的StreamingAssets文件夹。

"Page TOP"


当播放多个音效时,背景音和环境音被停止

[ADX:0007]

【问题】

为什么当我播放多个音效时,背景音和环境音会停止?

【回答】

先前的音频可能因为同时播放的音频以到达语音库的上限,随即使用先进先出的方法而被停止。
将背景音和环境音的优先顺序调整,使其高于CRI Atom Craft中的其他音效。
如需设置音频优先顺序,选中Cues引用的波形数据,然后在CRI Atom Craft中点击FX2标签的FX/AISAC面板。
请确认Cue上限或音频上限,因为它们有可能导致回放停止。

"Page TOP"


我在CRI Atom Craft中创建了一个范例项目,但我找不到ACB文件

[ADX:0008]

【问题】

在CRI Atom Craft中对SDK提供的范例项目执行了构建,但为什么找不到已经创建了的ACB文件?
Cue的预览播放可以正常进行。

【回答】

使用CRI Atom Craft构建Cue Sheet时,
Cue Sheet的二进制数据会输出到[构建Atom Cue Sheet二进制文件(Build Atom CueSheet Binary)]对话框中的[输出路径(Output Path)]所指定的路径。
该设置将保存于项目文件。

CueSheet的二进制代码将输出至C盘,因为范例项目的输出路径为C盘。
此时,如果项目的位置和Cue Sheet二进制数据的输出目标不同,则看起来没有输出文件。

如果想把样例工程放到C盘以外,
请在[构建Atom Cue Sheet二进制文件]对话框中单击[预设路径]按钮。
这允许您直接指定在项目文件夹内的输出路径(预设路径)。

cri4u_teqinfo_faq_adx0008_acbdlg.png
Build Atom CueSheet binary对话框

"Page TOP"


怎么样才能缩短延迟时间?

[ADX:0009]

【问题】

为什么回放延迟时间这么长?

【回答】

  • 请将 SonicSYNC 设置为On。
  • 如果正在使用串流播放模式,请尝试使用内存模式播放。
  • 此外,如果目标平台在 CRIWARE Library Initializer 组件的 CriAtomConfig 类中具有缓冲时间(Buffering Time)设置项,请调整该值。 机型中存在Buffering Time项目时,请调整该值。

"Page TOP"


如何设置自己应用声音的优先回放?

[ADX:0010]

【问题】

如果在其他应用(例如音乐播放器)正在播放声音时启动自己的应用,如何停止其他应用的播放而优先播放自己应用的声音?

【回答】

[iOS]
请尝试打开以下设定,确认应用是否会出现优先回放的行为。

CRIWARE Library Initializer
 - Atom Config
  - Override iPod Music

其他应用(例如音乐播放器)正在播放声音时,此选项控制是否停止其播放。
此选项被选中时,其他应用的播放会被停止。

[Android]
自Unity Ver.5.4.2p1开始,Player Setting > Android中新增了“Mute Other Audio Sources”选项,可以使Unity应用有能力抑制其他应用的播放。
 Player Settings > Android > Other Settings > Configuration > Mute Other Audio Sources
使用本机能的时候,请在选中上述选项之后,在Unity菜单中选择以下菜单项,以开启CRI插件的编译前处理。
 GameObject > CRIWARE > Create CriWareBuildPreprocessorPrefs.asset

Unity Ver.5.4.2p1之前的版本请使用安卓系统的AudioFocus API来控制声音播放。
在应用启动时、以及从挂起状态恢复时,需要在应用中使用AudioManager.requestAudioFocus函数进行AUDIOFOCUS_GAIN(夺取扬声器权限)处理

AudioFocus API的使用方法等请参见以下Android Developers官方说明。

参照)Handling Changes in Audio Output > Acquiring and releasing audio focus
https://developer.android.com/guide/topics/media-apps/volume-and-earphones.html

"Page TOP"


当我尝试同时播放多个视频时,它们不会被播放

[Sofdec:0003]

【问题】

为什么我无法同时播放多个视频?有的时候会出现错误回调并且无法播放。

【回答】

CRI Mana 文件库中的解码器数量或CRI File System文件库的加载器数量可能不够。
请查看 如何配置Sofdec,使它同时播放多个视频? .

"Page TOP"