0

AudioPlaybackAgent現在、オンライン オーディオ ストリームの再生に使用しています ( mp3)。デバイスがインターネットに接続されている場合、オーディオが再生されます。しかし、ネットワーク接続がなくplay、アプリのボタンを押すと、クラッシュします

An unhandled exception of type 'System.SystemException' occurred in System.Windows.ni.dll

そして、それは私にコードのこの部分を指摘します

....
case UserAction.Play:
    if (player.PlayerState != PlayState.Playing)
    {
        player.Play();
    }
    break;  // << right here
....

オーディオ プレーヤー全体を貼り付けることができますが、標準で生成されたバックグラウンド オーディオ プレーヤーを貼り付けることができます。ここで配線されているのは、バックグラウンドプレーヤーの初期化にコード行があることです

Application.Current.UnhandledException += AudioPlayer_UnhandledException;

未処理の例外を処理する必要があります...しかし、処理しません。

シンプルな try-catch を使用してオーディオ プレーヤー内でこの例外をキャッチできますが、Audioplaybackagent から直接 MessageBox を使用して表示することはできません (ストアにアプリを送信しようとすると、MS が許可していないため)。

ここでの私の質問は次のとおりです。

  1. アプリ内で例外をキャプチャし、ネットワーク接続がないことを示す MessageBox などをユーザーに表示するにはどうすればよいですか
  2. 未処理の例外が投稿されたコードで処理されないのはなぜですか?

ご協力いただきありがとうございます!

4

2 に答える 2

0

次のコードを使用して、「再生」ボタンをタップしてネットワークが利用可能かどうかを確認しました

if (NetworkInterface.GetIsNetworkAvailable() == false)
{
    // push some info to user...
}
于 2013-07-11T16:19:01.757 に答える