在我的应用程序中,每页有一个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 MediaElement:
private void me_MediaOpened(object sender, RoutedEventArgs e)
{
MediaElement m = (MediaElement)sender;
m.Play();
}但是这种声音只在和其他页面上播放。
它看起来像是: Page1 (声音)、-> Page2 (无声音)、-> Page3 (声音)、-> Page4 (不健全)。
我什么都试过了,但我想不出是什么导致了这种行为。也许这并不重要,但我正在浏览同一个PhoneApplicationPage子类的实例。
有什么想法吗?
P
发布于 2012-03-15 15:52:42
我解决了动态生成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从页面中删除,或者在下一页上播放声音将无法正常工作,这是非常困难的。
https://stackoverflow.com/questions/9708629
复制相似问题