gpt4 book ai didi

c# - 如何在 WPF 中播放声音

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

我是一名 C# 程序员新手,在使用 VS 2008 的 WPF (Windows) 应用程序中播放音乐时遇到问题。这是一个 Web 应用程序。我认为正在发生的事情是 myMediaElementExample 变量在用于执行 ExpenseReportPage.xaml.cs 文件中的 Play 方法时为空.

现在这个程序正在构建,但在我运行它之后,它在 myMediaElementExample.Play(); 行遇到异常。异常说:

An unhandled win32 exception occurred in the WpfApplication1.vhost.exe [948].

你们中的任何人都可以给我提示,让我知道我还可以尝试什么吗?我只包含了与此问题相关的代码:

ExpenseReportPage.xaml.cs 文件:

namespace ExpenseIt
{
public partial class ExpenseReportPage : Page
{
... }

public partial class MediaElementExample : Page
{
MediaElement myMediaElementExample = new MediaElement();

public MediaElementExample()
{
}

public void OnMouseDownPlayMedia(object sender, RoutedEventArgs args) //MouseButtonEventArgs
{
// The Play method will begin the media if it is not currently active or
// resume media if it is paused. This has no effect if the media is
// already running.
myMediaElementExample.Play();
}
}
}

HomePage.xaml.cs 文件:

namespace ExpenseIt
{
public partial class HomePage : Page
{
MediaElementExample mediaElementExample = new MediaElementExample();

public HomePage()
{
InitializeComponent();
}
void HandleClick(object sender, RoutedEventArgs e)
{
Button srcButton = e.Source as Button;
srcButton.Width = 200;
mediaElementExample.OnMouseDownPlayMedia(sender, e);
}
}
}

最佳答案

出于调试目的,将行包围起来:

myMediaElementExample.Play();

使用 try{} catch{} block :

try
{
myMediaElementExample.Play();
}
catch (Exception ex)
{
// Either print out the exception or examine it in the debugger.
}

这将为您提供有关导致异常的原因的更多信息。如果仍然不清楚,请使用此新信息更新问题。

如果 myMediaElementExample 为空,那么我希望您会得到 System.NullReferenceException而不是你看到的win32。您可以通过在 myMediaElementExample.Play(); 行上设置一个断点并检查它来检查这一点。

一旦您发现并修复了问题,您就可以删除异常处理程序,或者如果您想谨慎地保留它,但只捕获 MediaElement.Play 引发的异常。

关于c# - 如何在 WPF 中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1829422/

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