我是一名 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
引发的异常。
我是一名优秀的程序员,十分优秀!