Windows Phone のシェイクジェスチャ ライブラリに問題があります。揺れる音が消えて、うまく動作するアプリケーションを作成しましたが、奇妙なバグが私を混乱させました。私はそれの 2 ページを持っています。これは私の分離されたコードです:
void Instance_ShakeGesture1(object sender, ShakeGestureEventArgs e)
{
Stream stream = TitleContainer.OpenStream("Sounds/C.wav");
effect = SoundEffect.FromStream(stream);
effectInstance = effect.CreateInstance();
if (effectInstance.State != SoundState.Playing || effectInstance == null)
{
FrameworkDispatcher.Update();
effectInstance.Play();
}
else if (effectInstance.State == SoundState.Playing || effectInstance != null)
{
effectInstance.Stop();
}
}
void Instance_ShakeGesture2(object sender, ShakeGestureEventArgs e)
{
Stream stream = TitleContainer.OpenStream("Sounds/D.wav");
effect = SoundEffect.FromStream(stream);
effectInstance = effect.CreateInstance();
FrameworkDispatcher.Update();
if (effectInstance.State == SoundState.Stopped || effectInstance == null)
{
effectInstance.Play();
}
else if (effectInstance.State == SoundState.Playing || effectInstance != null)
{
effectInstance.Stop();
}
}
Instance_ShakeGesture1 はページ 1 で Instance_ShakeGesture2 を振ると音楽を再生する手順です。ページ 1 を振ると Instance_ShakeGesture1 が実行され、ページ 2 に移動しようとすると実行されます。 Instance_ShakeGesture1 が先で、Instance_ShakeGesture2 が先です。最初にページ 2 を振ろうとすると、問題は同じになり、ページ 1 よりも Instance_ShakeGesture2 が最初に実行され、Instance_ShakeGesture2 が 2 番目に実行されます。ブレークポイントを使用すると、このバグを知っています。誰でもこの問題を解決する方法を知っていますか? 前にありがとう:)