1

Zune で再生中のアプリに警告音を鳴らそうとしています。を使用しBackgroundAudioPlayerてサウンドを再生しています。

現在、警告音が再生されると、現在の Zune の曲が停止します。Zune トラックを一時停止し、警告音を鳴らしてから、Zune サウンドを再開する方法はありますか?

オーディオがどのように機能するかについては既に調べたので、これは不可能だと思います。メディア プレーヤーは 1 つしかなく、すべての要素がキューに配置されています... しかし、回避策を見つけたいと思います。

4

2 に答える 2

1

ここにサンプルがあります:http://msdn.microsoft.com/en-us/library/ff431744 (v = vs.92).aspx

サンプルはこれを行っています(MediaPlayerクラスを使用するには、XNAを参照し、GameTimerオブジェクトを初期化する必要があることに注意してください)。

public MainPage()
{
    InitializeComponent();

    // Timer to simulate the XNA game loop (SoundEffect class is from the XNA Framework)
    GameTimer gameTimer = new GameTimer();
    gameTimer.UpdateInterval = TimeSpan.FromMilliseconds(33);

    // Call FrameworkDispatcher.Update to update the XNA Framework internals.
    gameTimer.Update += delegate { try { FrameworkDispatcher.Update(); } catch { } };

    // Start the GameTimer running.
    gameTimer.Start();

    // Prime the pump or we'll get an exception.
    FrameworkDispatcher.Update();
}

// Flag that indicates if we need to resume Zune playback upon exiting.
bool resumeMediaPlayerAfterDone = false;

private void ZunePause()
{
    // Please see the MainPage() constructor above where the GameTimer object is created.
    // This enables the use of the XNA framework MediaPlayer class by pumping the XNA FrameworkDispatcher.

    // Pause the Zune player if it is already playing music.
    if (!MediaPlayer.GameHasControl)
    {
        MediaPlayer.Pause();
        resumeMediaPlayerAfterDone = true;
    }
}

private void ZuneResume()
{
    // If Zune was playing music, resume playback
    if (resumeMediaPlayerAfterDone)
    {
        MediaPlayer.Resume();
    }
}
于 2011-11-16T05:15:21.480 に答える
0

ご想像のとおり、Zuneで再生されているものを一時停止し、BackgroundAudioPlayerを介してトラック/サウンドを再生してから、Zuneで以前に再生されていたトラックを再開することはできません。

BackgroundAudioPlayerはZuneプレーヤーと同じメディアキューを使用するため、トラックがBAPによって再生されると、以前にキューにあったものはすべて削除されます。たとえそれができなかったとしても、BAPのMediaLibraryからトラックを再生する(または再生をトリガーする)ことはできません。

ここでは、バックグラウンドオーディオの使用は完全に間違ったオプションのようです。(または、それを使用しなければならない理由がありますか?)
ユーザーがすでに再生しているオーディオの上に通知音を再生してみませんか?(MediaElementまたはSoundEffectのいずれかを使用します。)この警告通知ノイズは単なる短いエラービープ音であると思いますので、他の音楽の上にこのパリンに問題はないはずです。音声通知とVibrateControllerの使用を組み合わせて、何かが間違っていることをユーザーに明確にすることもできます。
または、アプリの実行中に通知が行われるため、警告を視覚的に示してみませんか?

于 2011-11-16T10:34:08.253 に答える