WP8 エミュレーターを使用して、メディア要素 (XAML ファイルのレイアウト ルート内にあるため、要素は実行時のビジュアル ツリーの一部です) があり、コード ビハインドから再生するようにプログラムでトリガーしようとしています。
アプリのバックエンドでサウンドの再生が必要な場合に、Caliburn Micro EventAggregator を使用してメッセージを送信しています。ビューのコード ビハインドでは、IHandle を使用してメディア要素のソースを設定し、Play をトリガーしています。
public void Handle(ToneMessage message)
{
MediaElem.Source = message.ToneUri;
MediaElem.Play();
}
メッセージ イベントをトリガーすると、サウンドが再生されません。ただし、 にブレークポイントを設定するとMediaElem.Play()
、それをまたぐとサウンドが再生されます。
何が起こっているのかわかりません。基本的に、私のコードは、デバッガーでステップオーバーしている場合にのみ機能します。私はまだ UI スレッドを使用しています (Dispatcher を明示的に使用しようとしても)。
どんなアイデアでも大歓迎です。