none
关于cortana启动应用后死机的问题 RRS feed

  • 问题

  • 现在的情况就是,在软件打开的情况下,运行一切正常。

    但是,如果把软件关闭之后,再对小娜使用该命令的话,软件会正常弹出,但是会卡在启动界面,之后自动关闭(pc和mobile均为此)

    如何解决该问题呢?希望能有懂的人帮助一下,谢谢!

    代码稍后贴出

    2017年5月22日 2:16

全部回复

  • mainpage.cs:

            private async void Page_Loaded(object sender, RoutedEventArgs e)
            {
                var storageFile =
                await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(
                new Uri("ms-appx:///VoiceCommandDictionary.xml"));
                await Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager
                            .InstallCommandDefinitionsFromStorageFileAsync(storageFile);     //加载语音字典
            }

    mainpage.xaml中已设置好Loaded="Page_Loaded"。

    2017年5月22日 2:16
  • VoiceCommandDictionary.xml:

    <?xml version="1.0" encoding="utf-8" ?>
    <VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.2">
      <CommandSet xml:lang="zh-cn" Name="AdventureWorksCommandSet_zh-cn">
        <AppName> 我想 </AppName>
        <Example> 喝水 </Example>
    
        <Command Name="iWanToDrink">
          <Example> 喝水 </Example>
          <ListenFor> 喝水 </ListenFor>
          <Feedback> 请稍等,我去给您把水杯拿过来 </Feedback>
          <Navigate />
        </Command>
      </CommandSet>
    </VoiceCommands>
    2017年5月22日 2:17
  • app.xaml.cs:

            protected override void OnActivated(IActivatedEventArgs e)
            {
                // Was the app activated by a voice command?
                if (e.Kind != Windows.ApplicationModel.Activation.ActivationKind.VoiceCommand)
                {
                    return;
                }
    
                var commandArgs = e as Windows.ApplicationModel.Activation.VoiceCommandActivatedEventArgs;
    
                var speechRecognitionResult = commandArgs.Result;
                string voiceCommandName = speechRecognitionResult.RulePath[0];
    
                Frame rootFrame = Window.Current.Content as Frame;
                MainPage page = rootFrame.Content as MainPage;
    
                if (voiceCommandName == "iWanToDrink")
                {
                    page.voiceShow("喝水命令");
                }
    
                //确保当前窗口处于活动状态
                Window.Current.Activate();
            }
    2017年5月22日 2:17
  • 没人会解决吗?

    工程文件:

    https://pan.baidu.com/s/1kUIuptd

    2017年5月22日 8:53