Как обработать ошибку, когда два приложения используют BackgroundAudioPlayer

Это еще один фоновые звуковые ресурсы больше не доступны ошибка в Windows Phone 7, но по другому сценарию. У меня есть 2 приложения, которые используют BackgroundAudioPlayer для воспроизведения фоновой музыки.

Когда приложение A воспроизводит фоновую музыку, я нажимаю кнопку «Домой», чтобы выбрать приложение B, воспроизвести музыку в приложении B, а затем вернуться в приложение A.

Там всякий раз, когда приложение A использует BackgroundAudioPlayer.Instance, оно выдает InvalidOperationException с сообщением «ресурсы фонового звука больше не доступны».

Единственное, что я могу сделать, это try/catch, что бесполезно, кроме предотвращения сбоя приложения. И я не могу позвонить BackgroundAudioPlayer.Instance.Close(), потому что он больше недоступен.

Как с этим бороться?


person onmyway133    schedule 17.12.2012    source источник


Ответы (1)


В этом сценарии вы не можете полагаться на работу BackgroundAudioPlayer.Instance методов - и вам нужно обработать InvalidOperationException, чтобы знать, что этот сценарий произошел.

На этом этапе вы можете снова перезапустить фоновый звуковой агент, используя BackgroundAudioPlayer.Instance.Play().

person Paul Annetts    schedule 17.12.2012
comment
Экземпляр больше не доступен? Итак, как я могу вызвать Play()? И должен ли я вызывать NotifyComplete в AudioPlayer_UnhandledException (на стороне агента)? - person onmyway133; 18.12.2012
comment
ресурсы больше не доступны. Play() создаст их заново, чтобы вы могли вызывать обычные методы после этой точки. - person Paul Annetts; 18.12.2012
comment
благодаря. Воспроизведение () в порядке. Но когда я вызываю SkipNext, SkipPrevious, .. эти действия пользователя кажутся поставленными в очередь до тех пор, пока не будет вызван Play(). Там агент обрабатывает SkipNext, SkipPrevious и Play соответственно. Знаете ли вы, как отличить, воспроизводится ли эта музыка нашим приложением или другим приложением? - person onmyway133; 18.12.2012
comment
Вы пытались позвонить BackgroundAudioPlayer.Instance.PlayerState? Я подозреваю, что если это выдает, вы больше не контролируете звук. - person Paul Annetts; 18.12.2012