2011-12-17 2 views
1

У меня есть приложение для WP7, используя BackgroundAudioPlayer, поскольку нам нужно играть в фоновом режиме. Проблема в том, что когда в фоновом режиме уже есть приложение, воспроизводящее звук, я не могу получить свою работу AudioPlaybackAgent, предыдущая музыка просто продолжает играть.Как остановить фоновый звук, воспроизводимый другими приложениями?

Документ вводится таким образом,

BackgroundAudioPlayer.Instance.Close(); 

, с помощью которого я могу только закрыть звук, который воспроизводится сам или Zune, но он не работает, когда звук воспроизводится с помощью других приложений.

Так есть способ закрыть все звуки воспроизведения?

+1

Возможно даже (что я сомневаюсь) Я бы рекомендовал НЕ делать это ... как пользователь, я бы удалил ваше приложение с моего телефона, так как то, что вы описываете, действительно раздражает приложение! – Yahia

+0

Возможно, я не описал четко, это музыкальное приложение, никто не хочет, чтобы одновременно играли две музыкальные композиции. Вот почему сам Zune делает то же самое. – su27

+0

Я бы подумал, что это должно произойти автоматически, когда вы начнете играть на своем. Я думаю, что я видел некоторую документацию, в которой упоминалось, что при запуске воспроизведения с помощью MediaElement - текущий фоновый звук должен начинаться автоматически. –

ответ

1

OK Я исправил его.

Что я сделал, чтобы заставить его играть, как это, первый я поставил трек к игроку:

BackgroundAudioPlayer.Instance.Track = ...; 

Тогда OnPlayStateChanged событие будет срабатывать в фоновом режиме агента, где я называю метод BackgroundAudioPlayer.Instance.Play(). Кажется, это отлично работает.

Но если фоновый плеер уже используется другим приложением, PlayState не изменится на TrackReady, когда я установил трек, и, следовательно, событие не будет срабатывать.

Чтобы исправить это, я просто вызываю метод .Play() в основном потоке пользовательского интерфейса, сразу после установки дорожки. И это работает.

Смежные вопросы