Windows-Phone-7:检查 soundEffectInstance 的实例是不是正在播放
Posted
技术标签:
【中文标题】Windows-Phone-7:检查 soundEffectInstance 的实例是不是正在播放【英文标题】:Windows-Phone-7: Check if an instance of soundEffectInstance is playingWindows-Phone-7:检查 soundEffectInstance 的实例是否正在播放 【发布时间】:2011-08-14 11:01:08 【问题描述】:我有一个可以控制声音效果的按钮。单击按钮时,声音应该开始播放。如果在声音仍在播放时单击它,它应该会停止声音。如果在声音自行停止播放后单击它,声音应该会重新开始播放。
我已经尝试过了,但是我错误地使用了 SoundState 方法,因为它不起作用:
public void playGenericSound(string fileName)
if (playingSound.State != SoundState.Playing)
using (var stream = TitleContainer.OpenStream(fileName))
var effect = SoundEffect.FromStream(stream);
playingSound = effect.CreateInstance();
FrameworkDispatcher.Update();
playingSound.Play();
else
playingSound.Stop();
有什么想法吗? 提前谢谢了! 会。
【问题讨论】:
【参考方案1】:对于 XNA 应用程序:
在 update() 方法中检查音效的 playingSound.State 字段,如果播放已停止,则播放另一个。
对于 Silverlight:
这部分有点棘手,因为 SoundEffectInstance 被设计为 XNA 的一部分。例如,您可以使用 Timer 创建自己的循环,并在事件处理程序中添加您的状态检查逻辑。
第二个想法是使用一个计时器,其间隔设置为播放声音的持续时间,并添加一个类似 bool isPlaying 的标志。第一次播放时,将 isPlaying 标志设置为 true 并启动计时器。在计时器处理程序中,将 isPlaying 标志设置为 false。每次按下按钮时,检查 isPlaying 标志。换句话说,制作你自己的播放状态逻辑。
您可以结合使用这些方法。
【讨论】:
我有一个基于您的第二个想法的应用程序。基本上我建立了一个队列,它使用具有声音持续时间的计时器来控制队列流。您需要确保以稳健的方式构建它,处理错误并正确控制计时器和事件。 我有同样的想法,但老实说希望有一种方法可以在没有自定义变量的情况下解决它,特别是因为我有多种不同持续时间的不同声音......这意味着很多自定义计时器。不过会试一试。谢谢【参考方案2】:我想我会把我所做的事情发布在我现在正在为某人工作的程序中。
// Play Audio File and allow stop
if (new Rectangle(rV.X, rV.Y, rect.Width, rect.Height).Contains(mosX, mosY) && mouseClick)
if (driversmeeting.State != SoundState.Playing && !globalAudioPlaying)
globalAudioPlaying = true;
driversmeeting.Play();
else if (driversmeeting.State == SoundState.Playing)
driversmeeting.Stop();
globalAudioPlaying = false;
【讨论】:
以上是关于Windows-Phone-7:检查 soundEffectInstance 的实例是不是正在播放的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Error: Cannot run with sound null safety, because the following dependencies don‘t support
Flutter Error: Cannot run with sound null safety, because the following dependencies don‘t support
Flutter Error: Cannot run with sound null safety, because the following dependencies don‘t support
Flutter Error: Cannot run with sound null safety, because the following dependencies don‘t support(代