使用 WP8 模拟器,我有媒体元素(在我的 XAML 文件的布局根目录内,因此该元素是运行时可视化树的一部分),并且我试图以编程方式触发它从后面的代码中播放。
当我的应用程序后端中的某些内容需要播放声音时,我正在使用 Caliburn Micro EventAggregator 发送消息。在后面的视图代码中,我使用 IHandle 设置媒体元素的 Source 并触发 Play。
public void Handle(ToneMessage message)
{
MediaElem.Source = message.ToneUri;
MediaElem.Play();
}
当我触发消息事件时,没有声音播放。但是,如果我在 上设置断点MediaElem.Play()
,当我越过它时,声音就会播放。
我不知道发生了什么,基本上我的代码只有在我用调试器越过它时才有效。我仍在 UI 线程上(甚至尝试显式使用 Dispatcher)。
欢迎任何想法。