【发布时间】:2013-11-15 06:06:09
【问题描述】:
使用 WP8 模拟器,我有媒体元素(在我的 XAML 文件的布局根目录内,因此该元素是运行时可视化树的一部分),我正在尝试以编程方式触发它从后面的代码中播放.
当我的应用后端中的某些内容需要播放声音时,我正在使用 Caliburn Micro EventAggregator 发送消息。在后面的视图代码中,我使用 IHandle 设置媒体元素的 Source 并触发 Play。
public void Handle(ToneMessage message)
{
MediaElem.Source = message.ToneUri;
MediaElem.Play();
}
当我触发消息事件时,没有声音播放。但是,如果我在MediaElem.Play() 上设置断点,当我越过它时,声音就会播放。
我不知道发生了什么,基本上我的代码只有在我使用调试器单步执行时才有效。我仍在 UI 线程上(甚至尝试显式使用 Dispatcher)。
欢迎任何想法。
【问题讨论】:
-
感谢您的评论,在链接中提到了使用 MediaOpened,看来这是正确的选择。
标签: c# .net windows-phone-8 mediaelement