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 |