Я работаю над музыкальным приложением для WP7. Он загружает музыку с наших серверов в виде небольших сегментов (каждый трек разделен на 128 тыс. Зашифрованных фрагментов). Я использую AudioPlayerAgent и AudioStreamingAgent для загрузки, дешифрования и воспроизведения музыки.
Все отлично работает, пока я запускаю приложение из visual studio через F5. Когда я запускаю приложение из меню на эмуляторе или устройстве, все работает нормально, кроме музыки, которая не воспроизводится. BackgroundAudioPlayer никогда не запускается. Не имеет значения, пытаюсь ли я отладить или выпустить сборку, или если я попробую его на эмуляторе или реальном устройстве (Nokia Lumia 710 и HTC HD7 Pro).
Я думаю, что у меня все правильно настроено в AppManifest:
<Capabilities>
<Capability Name="ID_CAP_GAMERSERVICES" />
<Capability Name="ID_CAP_IDENTITY_DEVICE" />
<Capability Name="ID_CAP_IDENTITY_USER" />
<Capability Name="ID_CAP_LOCATION" />
<Capability Name="ID_CAP_MEDIALIB" />
<Capability Name="ID_CAP_MICROPHONE" />
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_PHONEDIALER" />
<Capability Name="ID_CAP_PUSH_NOTIFICATION" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
</Capabilities>
<Tasks>
<DefaultTask Name="_default" NavigationPage="Panorama.xaml" />
<ExtendedTask Name="BackgroundTask">
<BackgroundServiceAgent Specifier="AudioPlayerAgent" Name="AudioPlaybackAgent1" Source="AudioPlaybackAgent1" Type="AudioPlaybackAgent1.AudioPlayer" />
<BackgroundServiceAgent Specifier="AudioStreamingAgent" Name="AudioStreamAgent1" Source="AudioStreamAgent1" Type="AudioStreamAgent1.AudioTrackStreamer" />
</ExtendedTask>
</Tasks>
После некоторых исследований я обнаружил, что могу включить скрытую консоль для эмулятора для просмотра журнала отладки. Я попытался отследить, что происходит, когда я запускаю приложение из меню эмулятора. В точке, где BackgroundAudioPlayer должен начать воспроизведение трека, появляются следующие сообщения:
PID:0E8500C6 TID:0EEE006A Sentinels are Disabled for all processes.PID:0E8500C6 TID:0EC500DE Exception 'Raised Exception' (0xc0008005): Thread-Id=0ec500de(pth=c0654930), Proc-Id=0e8500c6(pprc=c05f3160) 'HeadlessHost.exe', VM-active=0e8500c6(pprc=c05f3160) 'HeadlessHost.exe'
PID:0E8500C6 TID:0EC500DE PC=42a629f7(mscoree3_7.dll+0x000529f7) RA=42ac3ae5(mscoree3_7.dll+0x000b3ae5) SP=0634f6b8, BVA=00000000
Я также пытался протестировать приложение в MarketplaceTestKit, если какой-либо неподдерживаемый Api вызывает его, но приложение прошло все тесты в порядке.
Итак, мой вопрос: кто-нибудь знает, когда приложение играет только при подключении к отладчику?
Спасибо,
Январь