ios语音输入崩溃

  游戏中任何可以输入的地方,只要调用语音输入,必然会导致app崩溃,解决方法如下:

  ok, so essentially the gist of it is that siri wants gl context and to be rendered alongside your view. So you need to play nice with it.
first of all in Classes/Unity/EAGLContextHelper.h
add forward declaration for

struct UnityDisplaySurfaceBase;

and then inside class EAGLContextSetCurrentAutoRestore add constructor:

EAGLContextSetCurrentAutoRestore(UnityDisplaySurfaceBase* surface);

so it looks like that

struct UnityDisplaySurfaceBase;
<...>
class
EAGLContextSetCurrentAutoRestore
{
public:
   EAGLContext* old;
   EAGLContext* cur;

   EAGLContextSetCurrentAutoRestore(EAGLContext* cur);
   EAGLContextSetCurrentAutoRestore(UnityDisplaySurfaceBase* surface);
   ~EAGLContextSetCurrentAutoRestore();
};

then in Classes/Unity/EAGLContextHelper.mm
add

#include "UnityRendering.h"

and implementation for new ctor

EAGLContextSetCurrentAutoRestore::EAGLContextSetCurrentAutoRestore(UnityDisplaySurfaceBase* surface)
  : old(surface->api == apiMetal ? nil : [EAGLContext currentContext]),
   cur(surface->api == apiMetal ? nil : ((UnityDisplaySurfaceGLES*)surface)->context)
{
   if (old != cur)
     [EAGLContext setCurrentContext:cur];
}

Afterwards you just need to go to Classes/UnityAppController+Rendering.mm and add

EAGLContextSetCurrentAutoRestore autorestore(GetMainDisplaySurface());

to

static void UnityRepaintImpl(bool forced)

so it looks like this

static void UnityRepaintImpl(bool forced)
{
   @autoreleasepool
   {
     EAGLContextSetCurrentAutoRestore autorestore(GetMainDisplaySurface());

     Profiler_FrameStart();
<...>

again, i cannot even build 4.x now, so you need to use c/objc knowledge to fix possible compilation errors (if i forgot to mention some incudes or smth)

参考自:http://forum.unity3d.com/threads/dictation-siri-keyboard-crash.358123/

时间: 2024-10-21 15:13:03

ios语音输入崩溃的相关文章

使用Olami SDK实现一个语音输入数字进行24点计算的iOS程序

前言 在目前的软件应用中,输入方式还是以文字输入方式为主,但是语音输入的方式目前应用的越来越广泛.这是一个利用 Olami SDK 编写的一个24点iOS程序,是通过语音进行输入. Olami SDK的介绍在下面这个网址 https://cn.olami.ai/wiki/?mp=sdk&content=sdk/ios/reference.html 在这个网址中详细的介绍了Olami SDK包含了那些函数和定义的委托. App实现 下面就通过24点这个程序来介绍一下如何使用这个SDK. 这个APP

经典好文:android和iOS平台的崩溃捕获和收集

通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常,以便开发人员发现和修改bug,对于提高软件质量有着极大的帮助.本文介绍了iOS和android平台下崩溃捕获和收集的原理及步骤,不过如果是个人开发应用或者没有特殊限制的话,就不用往下看了,直接把友盟sdk(一个统计分析sdk)加入到工程中就万事大吉了,其中的错误日志功能完全能够满足需求,而且不需要额外准备接收服务器. 但是如果你对其原理更感兴趣,或者像我一样必须要兼容公司现有的bug收集系统,那么下面的东西就值得一看了. 要实现崩溃捕获和收

HoloLens开发手记 - Unity之语音输入

对于HoloLens,语音输入是三大基本输入方式之一,广泛地运用在各种交互中.HoloLens上语音输入有三种形式,分别是: 语音命令 Voice Command 听写 Diction 语法识别 Grammar Recognition 语音命令 Voice Command 对于做过Windows Phone或许Windows Store应用开发的人来说,语音命令是经常使用到的特性.开发者可以通过为应用设定关键词,和对应的行为,来为用户提供语音命令体验.当用户说出关键词时,预设的动作就会被调用.在

watch os 语音输入

WatchKit提供了一个标准的模态界面,用于从用户检索文字输入.当呈现,界面允许用户通过听写输入文字或从标准组短语或表情符号, import WatchKit import Foundation class ComplaintInterfaceController: WKInterfaceController { @IBOutlet var inputText: WKInterfaceLabel! override func awakeWithContext(context: AnyObjec

语音输入和文字输入动画切换

随着语音的快速普及,很多应用都开始增加语音输入功能.下面是一个简单的语音和文字输入的动画切换: 布局文件: <ViewFlipper android:id="@+id/viewFlipper1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" &g

关于xcode7下的ios模拟器输入内容无法显示系统键盘的解决办法

xcode7下的ios模拟器输入内容无法系统键盘,只能用电脑键盘输入内容,这样可能会对调试带来麻烦. 其实xcode7下的ios模拟器默认只能使用一种,要么是模拟器系统键盘,要么就是是电脑键盘.设置方法如下: 打开ios模拟器菜单栏:Hardware-->Keyboard,会分别看到三个选项:Uses the Same Layout as OS X .Connect Hardware Keyboard和Toggle Software Keyboard.Uses the Same Layout a

转 理解与分析ios应用的崩溃报告

理解与分析ios应用的崩溃报告 源网址: http://developer.apple.com/library/ios/#technotes/tn2151/_index.html 当一个应用程序崩溃时,创建一份“崩溃报告”对于理解崩溃是如何引起的非常有用.本文档包含有关如何识别,了解并解释崩溃报告的基本信息. 简介 当一个应用程序在一台iOS 设备上崩溃时,一份“崩溃报告”将在该设备上次创建并存储起来.崩溃报告描述应用程序是在何种条件下崩溃的,大部分情况下包含一份当前正在运行线程的完整的堆栈跟踪

Win8系统语音识别使用方法和xp内置语音输入软件安装

下面介绍两款现在主流系统的一些特殊功能,语音输入,也许你还没有正式使用这些功能,但是系统中既然有这项功能就有着它存在的意义,这节就讲下Win8与XP的语音识别功能的使用方法. 之一<Win8>启动语音识别功能 首先,用户需要准备一部笔记本电脑和一个麦克风.Win8语音识别程序能够支持任何类型的麦克风,甚至包括内置在用户笔记本中的扩音器.不过,微软表示,价格在20美元左右的麦克风效果最佳. 激活语音识别功能最简单方法就是打开"开始"(Start)界面,输入"语音&q

iOS系统app崩溃日志手动符号化

iOS系统app崩溃日志手动符号化步骤: 1.在桌面建立一个crash文件夹,将symbolicatecrash工具..crash文件..dSYM文件放到该文件夹中 a.如何查询symbolicatecrash路径位置? 执行命令:find /Applications/Xcode.app -name symbolicatecrash -type f 然后将symbolicatecrash复制一份 例如:Xcode7.3的symbolicatecrash路径 /Applications/Xcode