CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
无缝连接播放

范例内容

概述

此范例演示使用了无缝连接播放的音频播放脚本。
cri4u_samples_criatom_script08_main.png

操作方法

通過单击[Play Cue]按钮,将连接播放已指定的Cue。
而单击[Play Data]按钮时,会对脚本中创建的正弦波形进行连接播放。

单击以上各项的Play按钮后,可以单击[Stop]按钮停止音频输出。

场景信息


中间件 CRI ADX (CRI Atom)
范例 脚本范例:无缝连接播放
存储路径 /CRIWARE/SDK/unity/samples/UnityProject/Assets/Scenes/criatom/script/ScriptSample08_SeamlessSequencePlayback/Scenes
场景文件 ScriptSample08_SeamlessSequencePlayback.unity
ADX数据的原始数据 数据:弹球


程序说明

此脚本范例演示了如何使用无缝连接播放来执行连续的音频播放。
可以不间断地连续播放配置在Cue或内存中的PCM数据。
此范例对每种播放格式分别使用相应的CriAtomExPlayer进行播放。

关于无缝连接播放脚本

使用CriAtomExPlayer的无缝连接播放功能执行播放。

执行无缝连接播放的步骤如下:

  1. 为Player创建用于连接播放的Entry Pool。
    • 由CriAtomExPlayer.PrepareEntryPool创建。
    • 建议此时设置充分的数据个数。
    • (PCM数据时) 需要使用CriAtomExRawPcmVoicePool创建专用的Voice池,并使用CriAtomExPlayer.SetVoicePoolIdentifier 指定其关联的Player。 -(PCM数据时)同时,请确保使用由CriAtomExPlayer.SetFormat指定准备播放的音频格式。
  2. 播放音频之前输入足够的音频数据至CriAtomExPlayer。
    • 由于在调用CriAtomExPlayer.Start后将立即请求下一个数据,因此需要在调用Start之前先输入下一个数据。
      -(Cue时)此时,第一个Cue使用CriAtomExPlayer.SetCue输入,而之后的数据则使用CriAtomExPlayer.EntryCue输入。
      -(PCM数据时)此时,第一个Cue使用CriAtomExPlayer.SetData输入,而之后的数据则使用CriAtomExPlayer.EntryData输入。

      3.无缝连接播放中会在适当的时机补充数据。
    • (Cue时)将根据输入的Cue长度而決定。在播放Cue的情况下,由于有足够的数据长度,因此在Entry为空时添加CriAtomExPlayer.EntryCue。
      -(PCM数据时)根据应用程序的帧率和Atom Server处理的周期,可能一次读完两个缓冲区,因此请在缓冲读完之前补充数据。

注意
用于无缝连接播放的波形数据格式必须全部相同。
具体来说,以下参数必须相同:
  • 编解码器
  • 声道数
  • 采样率
连接具有不同参数的波形时,会出现有如意外速度播放音频数据和发生错误回调等问题。