0

Silverlight と XNA を組み合わせたアプリケーションで音楽を再生する際に、いくつかの問題があります。いくつかの Silverlight ページと、XNA でレンダリングされた「ゲーム」ページがあります。

まず、Silverlight のメイン ページの OnNavigatedTo イベントに次のコードを追加しました。

var song = (Application.Current as App).Content.Load<Song>("Music/Menu");
MediaPlayer.Play(song);
MediaPlayer.Volume = 0.9f;
MediaPlayer.IsRepeating = true;

音楽の再生が開始されますが、明確なコールスタック ヒントがない次の例外でアプリケーションが失敗します。

InvalidOperationException occured
FrameworkDispatcher.Update has not been called. Regular FrameworkDispatcher.Update calls are necessary for fire and forget sound effects and framework events to function correctly.

2 つ目は、.NET を使用してレンダリングされた Silverlight ベースのウィンドウがいくつかありますUIElementRenderer。必要に応じて、コントロールのIsEnabledフラグを true に変更し、画面への描画を開始します。これにより、明確な理由もなくフェードアウトで音楽の再生が停止し、Silverligh ウィンドウを閉じても元に戻りません。

フレームから移動してフレームに戻ると、事態はさらに悪化します。への同じ呼び出しは、曲を新たMediaPlayer.Play(song)にロードしたにもかかわらず、破棄されたことを示しています。ContentManager

4

1 に答える 1

0

この StackOverflowの質問を参照してください— 答えはかなり明確です。FrameworkDispatcher.Update()つまり、 XNA メディア ライブラリを使用する前に呼び出す必要があります。

于 2012-12-13T12:12:45.080 に答える