使用WP8仿真器時,我有媒體元素(在我的XAML文件的佈局根目錄中,因此元素是運行時的可視化樹的一部分),並且我嘗試以編程方式觸發它從後面的代碼播放。僅在使用調試器步進時執行的動作
我正在使用Caliburn Micro EventAggregator在我的應用程序後端中的某些內容需要播放聲音時發送消息。在後面的代碼中,我使用IHandle來設置媒體元素的源和觸發器。
public void Handle(ToneMessage message)
{
MediaElem.Source = message.ToneUri;
MediaElem.Play();
}
當我觸發消息事件時,沒有聲音播放。但是,如果我在MediaElem.Play()
上放置斷點,當我跨過它時,聲音播放。
我不知道發生了什麼,基本上我的代碼只在我用調試器進行調試時才起作用。我仍然在UI線程上(甚至嘗試明確使用Dispatcher)。
歡迎任何想法。
也許這可以幫助:http://stackoverflow.com/questions/10984038/unable-to-play-sound-in-windows-8 –
感謝您的評論,在鏈接有提及使用MediaOpened,它似乎這是正確的選擇。 – drl