Я обнаружил, что интерфейс между BackgroundAudioPlayer (BAP) и приложениями переднего плана - это, пожалуй, самый непродуманный элемент «разработки» в Windows Phone 7.x SDK. IsolatedStorage на самом деле не работает для меня, потому что мое приложение может загружать много файлов и воспроизводить только несколько за раз в «списке воспроизведения». Должен ли я временно скопировать эти файлы в «особое» место в IsolatedStorage, чтобы агент мог читать список воспроизведения оттуда? На 10 до 20 МБ поп, я так не думаю. Кроме того, если я хочу использовать службу фоновой передачи - которая работает довольно хорошо, кстати, - чтобы постепенно добавлять файлы в список воспроизведения, как бы я сказал агенту загружать больше дорожек по мере их загрузки? Если не соглашаться на какое-то соглашение, чтобы получить треки, созданные в правильном порядке, это не может быть сделано.
Пытался использовать статические элементы на агенте для добавления треков в список воспроизведения (как они предлагают в документах), и ... ммм ... да, это просто не стартер.
На данный момент я решил управлять списком воспроизведения в приложении переднего плана и передавать треки один за другим в BAP в зависимости от действий пользователя. Проблема в том, что это не работает с элементами управления BAP, показанными на экране блокировки. Не похоже, что он обрабатывает событие TrackEnded последовательно. Я в шаге от того, чтобы просто использовать MediaElement и полностью отказаться от фонового звука.
Надеюсь, тот, кто изобрел этот фарс API, не будет участвовать в будущих версиях WP.