媒体元素未在 WPF .NET 框架应用中播放

Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
2024-03-01T05:52:33.65+00:00

几年前,我曾使用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

Windows Presentation Foundation
Windows Presentation Foundation
.NET Framework 的一部分,它提供统一的编程模型,用于在 Windows 上构建业务线桌面应用程序。
128 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 46,466 信誉分 Microsoft 供应商
    2024-03-01T09:15:54.4166667+00:00

    您是否将项目根目录中的.wmv文件添加到Resources.resx中? 您可以尝试将 .wmv 文件的“构建操作”和“复制到输出目录”属性设置为“内容”并始终复制/将 .wmv 文件添加到“Resources.resx”后复制(如果较新)。 将 .wmv 文件添加到项目资源并设置 .wmv 文件的属性后,我可以成功播放 .wmv 文件。 有关更多信息,您可以参考 MediaElement

    将 .wmv 文件添加到项目资源中:

    116484-a.png116546-b.png

    设置 .wmv 文件的属性:

    116536-c.png

    xaml的代码如下:

    <Grid> 
    
    <MediaElement Source="360.wmv" Name="myMediaElement" UnloadedBehavior="Play" /> 
    
    </Grid>
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。