c# - 第一个完成后播放第二个SoundEffect

标签 c# audio

在我的应用程序中,我正在使用“声音效果”播放一些声音。我想知道是否有一种方法可以知道音效何时完成运行,因此第二个将在此之后开始。

最佳答案

这个老问题,但是我今天不得不做同样的事情,我尝试了基于持续时间的方法,但最终以自己的解决方案停止了,这对我来说似乎是最简单的:

1)创建静态帮助程序类,比如说麦角酸的答案中的“SoundsManager”。

2)创建一个SoundsEffectInstanses队列,然后首先播放它们(下面的代码中为“_sheduledSounds”)。

3)在每个游戏循环中更新类,并检查soundinstance是否停止:

public static void Update()
        {
            if (_sheduledSounds != null && _sheduledSounds.Count > 1)
            {
                if (_sheduledSounds.Peek().State == SoundState.Stopped)
                {
                    _sheduledSounds.Dequeue();
                    _sheduledSounds.Peek().Play();
                }
            }
        }

关于c# - 第一个完成后播放第二个SoundEffect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5758732/

相关文章:

c# - 如何告诉 GridViewRow 作为 SEO 友好链接执行?

linux - 音频 channel 自动更改/交换

iphone - iPhone SDK:AVAudioPlayer在暂停或结束时发出声音

android 流输入的频谱分析

android - 在Android中访问Raw文件夹中的文件

c# - 如何模拟抽象基类

c# - 在数据库中处理和存储 Azure IoT 中心消息

c# - 通过 WebApi 返回 JSON

python - 音频流 Python 上的 Google 流式语音识别

c# - 在 C# 中使用 fo-dicom 操作和转换 CT 图像的像素数据