gpt4 book ai didi

c# - Mediafile wp8 不使用 Uri 播放

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:35 25 4
gpt4 key购买 nike

在我的 Windows Phone 8 项目中,我在 Dashboard.xaml 中定义了 MediaElement,如下所示,

<MediaElement x:Name="MusicMediaElement" Height="100" Width="100"                            
VerticalAlignment="Bottom" Margin="176,100,204,69"
Volume="1"
Source="{Binding CurrentCountdownItem.MusicFile}"
MediaFailed="beep_MediaFailed"
MediaOpened="beep_MediaOpened"
AutoPlay="False"/>

当用户在 NewItem.xaml 页面上选择音乐文件时,我将值设置如下,

Uri MusicItem = new Uri("../Assets/Music/Sleep_Away.wma", UriKind.Relative);
MyNewItem.MusicFile = MusicItem.ToString();

MyNewItem 值使用 viewModel 正确复制到 CurrentCountdownItem。

在仪表板上,OnNavigatedTo() 方法,我有这段代码,

MusicMediaElement.Source = new Uri(CurrentCountdownItem.MusicFile, UriKind.Relative);
MusicMediaElement.Play();

但是音乐没有播放,而是我收到错误代码 3100,这是从 beep_MediaOpened() 方法调用的,如果无法打开文件,该方法会被调用。

我已将音乐文件标记为内容,Asset/Image 文件夹中的其他图像文件按照此逻辑工作正常。我搜索了很多 3100 错误并使用 Uri 访问音乐文件,但没有得到任何工作结果。对来自 Uri 的 Binding MediaElement Source 属性的任何帮助表示赞赏。

最佳答案

将您的 MusicItem URI 更改为以下内容。

Uri MusicItem = new Uri("/Assets/Music/Sleep_Away.wma", UriKind.Relative);

编辑

您正在 OnNavigatedTo() 事件中播放音频。如果您在 OnNavigatedTobeep_MediaOpened 事件处理程序中设置断点,您可以看到 beep_MediaOpened 事件在 MusicMediaElement.Play() 行已完成执行。所以问题很明显。当您尝试播放文件时,您的 mp3 文件没有打开。

因此您可以在 OnNavigatedTo 事件处理程序中设置 MusicMediaElement 的来源,然后在 beep_MediaOpened 事件处理程序中播放 mp3,如下所示.这将在媒体元素正确打开文件后播放文件。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
MusicMediaElement.Source = new Uri(CurrentCountdownItem.MusicFile, UriKind.Relative);
}

private void beep_MediaOpened(object sender, RoutedEventArgs e)
{
MusicMediaElement.Play();
}

这应该可以解决您的问题。

关于c# - Mediafile wp8 不使用 Uri 播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25915354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com