我是用C#为UWP写一个播放器。
启动文件时遇到问题。
当应用程序打开时,启动文件效果很好但是当我关闭应用程序并启动文件时,它会给我错误: '远程过程调用失败'
我设置了fileTypeAssociation,这里有一些我在App.xaml.cs中启动的代码:
protected override void OnFileActivated(FileActivatedEventArgs e)
{
Frame rootFrame = CreateRootFrame();
if (rootFrame.Content == null)
{
if (!rootFrame.Navigate(typeof(MainPage), e))
throw new Exception("Failed to create initial page");
}
else
rootFrame.Navigate(typeof(PlayerPage), e);
Window.Current.Activate();
}
我该如何解决?
答案 0 :(得分:0)
错误'远程过程调用失败'
此崩溃通常发生在应用启动,激活或页面加载阶段。
由于您的应用在应用开放期间启动文件时工作正常,我只是假设OnLaunched(LaunchActivatedEventArgs e)
方法中的代码运行良好。
并且您没有发布CreateRootFrame()
的代码,根据您发布的代码,我无法真正重现您的问题。我改变了你的代码,它在我身边很好用:
protected override void OnFileActivated(FileActivatedEventArgs args)
{
//base.OnFileActivated(args);
var rootFrame = new Frame();
rootFrame.Navigate(typeof(PlayerPage), args);
Window.Current.Content = rootFrame;
Window.Current.Activate();
}
您只需要导航到rootFrame
中的播放器页面即可。
我在这里写了一个非常简单的演示https://github.com/plataformatec/devise,你可以测试它。只需下载并运行它然后关闭此应用程序,选择.mp4或.wmv文件并使用此应用程序打开,它将导航到PlayerPage
并播放该文件。
也许您可以分享CreateRootFrame()
方法的代码,或者告诉我从文件启动应用时还需要做什么,我会继续跟踪此问题。