几年前,我曾使用MediaElement在桌面应用程序中播放声音,效果很好。但是当我今天尝试时,我没有得到任何声音。
我只是在 Visual Studio 2019 中创建了一个新项目 WPF .Net 框架项目。我将一个.wav文件添加到项目的根目录中。在 MainWindow 的 XAML 中,我添加了一个 Media Element 对象。在“属性”中的“源”下,我看到并选择了音频文件。构建,运行。没有声音。 这是怎么回事?还有什么?
<MediaElement x:Name="mediaElement" Source="ahhh.wav"/>
还尝试过: <MediaElement x:Name=“mediaElement” LoadedBehavior=“Play” Source=“ahhh.wav”/>
我查看了 MediaElementExample 的 MS Wpf 示例存档,以寻找线索。我向 MediaElement 添加了三个事件并设置了中断。事件 MediaFailed 触发。异常显示“找不到文件”。
看起来很简单。所以调试没有显示“天哪!例外“它只是运行。但这意味着什么?文件就在那里。您可以在 Media Element 的属性中看到它。它在根部的.sln。它在目录中。我从 ms 示例中复制了.wav,认为这可能是一些采样率问题。还是不会玩。
为了使它更像 MS 示例,我将 LoadedBehavior 设置为 Manual,将 UnloadedBehavior 设置为 Manual,并触发一个按钮。Play() 方法。相同。。。
<MediaElement x:Name="mediaElement" LoadedBehavior="Manual" UnloadedBehavior="Manual"
Source="ringin.wav"
MediaOpened="mediaElement_MediaOpened"
MediaEnded="mediaElement_MediaEnded"
MediaFailed="mediaElement_MediaFailed"/>
<Button Click="Button_Click" />
private void Button_Click(object sender, RoutedEventArgs e)
{
mediaElement.Play();
}
private void mediaElement_MediaOpened(object sender, RoutedEventArgs e)
{
}
private void mediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
}
private void mediaElement_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
}
Note:此问题总结整理于:Media Element not playing in WPF .NET framwork app