在我的应用程序中,每页有一个MediaElement。导航到此页面时,我会播放语音消息。
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
mediaElement.Stop();
smediaElement.Source = new Uri("res/sounds/" + soundName, UriKind.RelativeOrAbsolute);
}
我已经为MediaElement注册了lsitener MediaOpened:
private void me_MediaOpened(object sender, RoutedEventArgs e)
{
MediaElement m = (MediaElement)sender;
m.Play();
}
但是声音仅在每隔页上播放一次。
因此,它看起来像:Page1(声音)-> Page2(没有声音)-> Page3(声音)-> Page4(没有声音)。
我尝试了一切,但我不知道是什么会导致这种行为。也许这并不重要,但是我正在浏览同一PhoneApplicationPage子类的实例。
有任何想法吗?
P
最佳答案
我解决了动态生成MediaElement并从onNavigatedFrom中的布局中删除该问题
这是代码:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
mediaElement = new MediaElement();
slideSound.Volume = 1;
LayoutRoot.Children.Add(mediaElement);
....
}
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
mediaElement.Stop();
LayoutRoot.Children.Remove(mediaElement);
mediaElement = null;
}
完美运作。很麻烦,您必须从页面中删除mediaElement或在下一页上播放声音将无法正常工作。
关于windows-phone-7 - WindowsPhone MediaElement,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9708629/