WP7.5/Silverlight 应用程序...
在我的页面加载时,我播放了一个声音剪辑(例如,你好!今天是美好的一天。)
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
seLoadInstance = seLoad.CreateInstance(); //I initialize this seLoad in Initialize method
seLoadInstance.Play();
}
现在我在页面上有 3-4 个其他元素。当用户点击其中任何一个时,会播放该元素的声音剪辑。
private void ElementClick_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
seElementInstance = seElement.CreateInstance();
seElementInstance .Play();
}
我想要的是: 当页面首次加载并且正在播放 seLoadInstance 并且用户单击元素时,我不希望播放 seElementInstance。
我可以像下面一样检查 seLoadInstance 的状态,以不播放 seElementInstance
private void ElementClick_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if(seLoadTextInstance.State != SoundState.Playing)
{
seElementInstance = seElement.CreateInstance();
seElementInstance .Play();
}
}
但上面的问题是我有另一个元素可以在点击时播放 seLoadInstance。
问题:我不知道如何区分 seLoadInstance 是第一次播放还是在元素单击时播放。
可能的解决方案:我看到的一种方法是使用不同的实例来播放相同的声音。
我希望有更好的方法,比如我在加载时设置一个标志,但我找不到任何我可以处理的 SoundInstance completed 或 Stopped 明确事件。
有任何想法吗??