IXAudio2SourceVoice::Stop 方法 (xaudio2.h)

停止当前语音使用音频。

语法

HRESULT Stop(
  [in] UINT32 Flags,
  [in] UINT32 OperationSet
);

参数

[in] Flags

控制语音停止方式的标志。 可以是 0 或以下值:

Value 说明
XAUDIO2_PLAY_TAILS 停止语音后继续发出效果输出。 

[in] OperationSet

将此调用标识为延迟批处理的一部分。 有关详细信息,请参阅 XAudio2 操作集 概述。

返回值

如果成功,则返回S_OK,否则返回错误代码。 有关 XAudio2 特定错误代码 的说明,请参阅 XAudio2 错误代码。

注解

保留语音和当前光标位置上排队的所有源缓冲区。 这允许语音在重新启动时从其中断的位置继续。 IXAudio2SourceVoice::FlushSourceBuffers 方法可用于刷新排队的源缓冲区。

默认情况下,不会播放来自语音效果(例如混响尾部)的任何挂起输出。 相反,语音会立即呈现无声。 XAUDIO2_PLAY_TAILS标志可用于在语音停止运行后继续发出效果输出。

使用XAUDIO2_PLAY_TAILS标志停止的语音会停止使用源缓冲区,但会继续处理其效果,并将音频发送到目标语音。 在此状态下的语音稍后可以完全停止,方法是再次调用 Stop 并将 Flags 参数设置为 0。 这样,便可以使用XAUDIO2_PLAY_TAILS停止语音,等待其效果生成的任何音频完成,然后再次调用 Stop 即可完全停止语音,而无需XAUDIO2_PLAY_TAILS。 此方法允许正常停止具有效果的语音,同时确保空闲语音在完成音频生成后不会继续处理。

停止 始终是异步的,即使在回调中调用也是如此。

注意 如果语音停止 (,XAudio2 从不为语音调用任何语音回调,即使它已使用XAUDIO2_PLAY_TAILS) 停止。
 

平台要求

Windows 10 (XAudio2.9) ;Windows 8、Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)

要求

   
目标平台 Windows
标头 xaudio2.h

另请参阅

IXAudio2SourceVoice

XAPO 概述