2013-01-15 31 views
2

我在運行WP8的設備上用AudioPlaybackAgent播放音軌時遇到問題。它適用於WP7,但不適用於WP8。它只適用於WP8,所以對於如何重現它也沒有明確的步驟。什麼似乎是問題是,當一個新的軌道即將播放,我已經將BackgroundAudioPlayer.Instance.Track設置爲新的AudioTrack,它不會收到onPlaystateChanged.TrackReadyWP8 AudioPlaybackAgent錯誤?

這是爲什麼?我也沒有收到onError

在WP8設備上播放音頻是否存在已知錯誤?它發生在大約50%的時間裏,同一條軌道既可以工作也可以不工作。這裏有什麼問題?請幫忙。任何來自Microsoft的可以幫助解決這個問題的?這將不勝感激。

回答

0

事情發生在50%的時間讓我懷疑這可能是WP7上沒有發生的競態條件。

當您更改軌道時,您是否正在使用背景代理程序進行線程鎖定(使用Mutexlock()等)?我有一個類似的WP8背景音頻應用程序,它以前在WP7上工作,並將其追溯到我的代碼中的死鎖。

不要忘記,WP8現在有雙核處理器,更有可能出現這樣的問題。見this post from someone on the Windows Phone team about back-compat between WP8 and 7。特別有趣的是該文章中名爲「Runtime behavior changes」的部分。

+0

我也想到了這一點,我會測試看看是否有任何死鎖或競賽條件,並更新我的發現。在此期間的任何其他想法?已知的問題? – kgrevehagen

+0

它現在工作我已經刪除了死鎖:)。我發現它使用調試器:遇到死鎖時,我暫停了應用程序,我可以看到哪些線程正在等待線程視圖中的哪個鎖定對象。 –

+0

請問你的僵局是什麼?你怎麼能看到它在Threads窗口中等待的鎖對象? – kgrevehagen