位置: 编程技术 - 正文

IOS为UNITY写插件/通信(unity iphone)

编辑:rootadmin

推荐整理分享IOS为UNITY写插件/通信(unity iphone),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ios unity,unity插件编写,unity ui 插件,unity写app,unity 编辑器插件,unity 编辑器插件,unity ui 插件,ios嵌入unity,内容如对您有帮助,希望把文章链接给更多的朋友!

直接将.h .m 文件拷贝导Unity 》 Plugs>IOS 下,不要存在子文件夹;录音,百度SDK需要的库文件,在Unity导出IOS工程后需要再添加

#import <Foundation/Foundation.h>

#import "XHVoiceRecordHelper.h"

#import "BDVRFileRecognizer.h"

// Max record Time

#define kVoiceRecorderTotalTime .0

#define API_KEY @"1pMskN3kIS6G8ccU4TKXiZ"

#define SECRET_KEY @"fglBlnpKo6Q6VDXBD4efZGwZkW"

@interface VoiceRecordPlug :NSObject<MVoiceRecognitionClientDelegate>

//@property (nonatomic, strong) XHVoiceRecordHelper *voiceRecordHelper;

void startVoiceRecord();

void stopVoicRecord();

-(void)start;

&#;(void)autoInit;

@end

//

// VoiceRecordPlug.m

// VoiceRecord

//

// Created by bin.li on -3-3.

// Copyright (c) 年 bin.li. All rights reserved.

//

#import "VoiceRecordPlug.h"

static VoiceRecordPlug *plug =nil;

static XHVoiceRecordHelper *voiceRecordHelper;

@implementation VoiceRecordPlug

//- (id)init {

// NSLog(@"cute init..");

// self = [super init];

// plug = self;

// return self;

//}

&#;(void)autoInit

{

plug = [[VoiceRecordPlugalloc] init];

}

-(void)start

{

startVoiceRecord();

}

void startVoiceRecord()

{

if (!plug) {

[VoiceRecordPlug autoInit];

}

NSLog(@"start record");

NSString *recorderPath = nil;

recorderPath = [[NSStringalloc] initWithFormat:@"%@/Documents/",NSHomeDirectory()];

recorderPath = [recorderPath stringByAppendingFormat:@"MySound.wav"];

if (!voiceRecordHelper)

{

NSLog(@"voiceRecordHelper init..");

voiceRecordHelper = [[XHVoiceRecordHelperalloc] init];

voiceRecordHelper.maxRecordTime =;

voiceRecordHelper.maxTimeStopRecorderCompletion = ^{

[voiceRecordHelperstopRecordingWithStopRecorderCompletion:^{

NSLog(@"");

finishRecord();

}];

};

voiceRecordHelper.peakPowerForChannel = ^(float peakPowerForChannel) {

// weakSelf.voiceRecordHUD.peakPower = peakPowerForChannel;

};

}

[voiceRecordHelper startRecordingWithPath:recorderPath StartRecorderCompletion:^{///录音存储

NSLog(@"");

// finishRecord();

}];

}

void stopVoicRecord()

{

NSLog(@"stop record");

finishRecord();

}

void finishRecord()

{

NSLog(@"cute finishRecord()..");

NSString *recorderPath = nil;

recorderPath = [[NSStringalloc] initWithFormat:@"%@/Documents/",NSHomeDirectory()];

recorderPath = [recorderPath stringByAppendingFormat:@"MySound.wav"];

[voiceRecordHelper stopRecordingWithStopRecorderCompletion:^{

NSLog(@"begin connect baidu.");

[[BDVoiceRecognitionClientsharedInstance] setApiKey:API_KEYwithSecretKey:SECRET_KEY];

BDVRFileRecognizer *fileRecognizer = [[BDVRFileRecognizeralloc] initFileRecognizerWithFilePath:recorderPathsampleRate:property:EVoiceRecognitionPropertyInputdelegate:plug];//将语言文件上传百度识别

int status = [fileRecognizer startFileRecognition];

NSLog(@"begin connect baidu. status = %d",status);

// if (status != EVoiceRecognitionStartWorking) {

IOS为UNITY写插件/通信(unity iphone)

// return;

// }

}];

}

void playRecord()

{

// voiceRecordHelper

}

#pragma mark - MVoiceRecognitionClientDelegate 语音识别工作状态通知

- (void)VoiceRecognitionClientWorkStatus:(int) aStatus obj:(id)aObj

{

NSLog(@"enter.. VoiceRecognitionClientWorkStatus");

switch (aStatus) {

caseEVoiceRecognitionClientWorkStatusFinish:

{

// 该状态&#;表示语音识别服务器返回了最终结果,结果以数组的形式保存在 aObj对象中

// 接受到该消息时应当清空显示区域的文字以免重复

NSLog(@"EVoiceRecognitionClientWorkStatusFinish");

if ([[BDVoiceRecognitionClientsharedInstance] getRecognitionProperty] !=EVoiceRecognitionPropertyInput)

{

NSMutableArray *resultData = (NSMutableArray *)aObj;

NSMutableString *tmpString = [[NSMutableStringalloc] initWithString:@""];

// 获取识别候选词列表

for (int i=0; i<[resultDatacount]; i&#;&#;) {

[tmpString appendFormat:@"%@rn",[resultDataobjectAtIndex:i]]; }

NSLog(@"result: %@", tmpString);

} else {

NSMutableString *sentenceString = [[NSMutableStringalloc] initWithString:@""];

for (NSArray *resultin aObj)// 此时 aObj 是 array,result 也是 array

{

// 取每条候选结果的第一条,进行组合

// result 的元素是 dictionary,对应一个候选词和对应的可信度

NSDictionary *dic = [resultobjectAtIndex:0];

NSString *candidateWord = [[dicallKeys] objectAtIndex:0];

[sentenceString appendString:candidateWord];

}

NSLog(@"result: %@", sentenceString);

// UnitySendMessage("MainManager",uFun,[sentenceString UTF8String]);//与Unity通信 ,调用Unity 中的方法 uFun ,传参数 sentenceString

}

break;

}

caseEVoiceRecognitionClientWorkStatusFlushData:

{

// 该状态&#;表示服务器返回了中间结果,如果想要将中间结果展示给用户(形成连续上屏的效果),

// 可以利用与该状态同时返回的数据,每当接到新的该类消息应当清空显示区域的文字以免重复

NSMutableString *tmpString = [[NSMutableStringalloc] initWithString:@""];

[tmpString appendFormat:@"%@",[aObjobjectAtIndex:0]];

NSLog(@"%@",tmpString);

break;

}

caseEVoiceRecognitionClientWorkStatusError:

{

NSLog(@"EVoiceRecognitionClientWorkStatusError");

}

default:

break;

}

}

- (void)VoiceRecognitionClientErrorStatus:(int) aStatus subStatus:(int)aSubStatus

{

NSLog(@"VoiceRecognitionClientErrorStatus");

NSString *str = @"";

switch (aStatus) {

caseEVoiceRecognitionClientErrorStatusNoSpeech:

str = @"你怎么不说话呀!";

break;

caseEVoiceRecognitionClientErrorStatusShort:

str = @"你说话声音太短啦!";

break;

caseEVoiceRecognitionClientErrorStatusChangeNotAvailable:

str = @"录音设备不可用啊!";

break;

caseEVoiceRecognitionClientErrorStatusIntrerruption:

str = @"录音中断咯!";

break;

caseEVoiceRecognitionClientErrorNetWorkStatusUnusable:

str = @"网络不可用啦!";

break;

caseEVoiceRecognitionClientErrorNetWorkStatusError:

str = @"网络发生错误啦!";

break;

caseEVoiceRecognitionClientErrorNetWorkStatusTimeOut:

str = @"请求超时咯!";

break;

default:

str = @" 请认真说话呀! ";

break;

}

NSLog(@"error = %@",str);

// UnitySendMessage("MainManager",ufnc,[str UTF8String]);

}

@end

Protocol Buffers(Protobuf)开发者指南---概览 欢迎来到protocolbuffers的开发者指南文档,protocolbuffers是一个与编程语言无关‘、系统平台无关、可扩展的结构化数据序列化/反序列化工具,适用于

python标准库之SocketServer 转载自:

Unity PlayerPrefs.DeleteAll 无效以及 PlayerPrefs文件保存位置 DeleteAll无效检查下设置的公司名称和项目名称是否是中午!!!!!改成英文即可各平台保存路径OnMacOSXPlayerPrefsarestoredin~/Library/Preferencesfolder,inafilenamedu

标签: unity iphone

本文链接地址:https://www.jiuchutong.com/biancheng/383541.html 转载请保留说明!

上一篇:Unity NGUI——常见NGUI鼠标快捷操作(unity_jail)

下一篇:Protocol Buffers(Protobuf)开发者指南---概览

  • 免交增值税怎么账务处理
  • 账簿印花税的计税方法
  • 小规模 季度
  • 分公司缴税企业所得税
  • 应收账款贷方余额重分类到哪
  • 注销公司报表应注意什么
  • 开具发票时如何选择对应的商品分类编码?
  • 外购货物用于集体福利属于什么
  • 分批收款收据怎么写
  • 价外收取的返还利润是什么意思
  • 欠款还了一部分怎么写起诉书
  • 员工对公司造成损失的,可以起诉吗
  • 金蝶财务软件如何打印凭证
  • 公司给员工发的工资要交税吗
  • 在固定资产中
  • 所得税汇算清缴补税的会计处理
  • 三险一金专项扣除怎么查
  • win10禁用安全杀毒功能
  • 姑娘果的功效与作用百度百科
  • 固定资产残值率计算公式
  • 预付工程款计入在建工程吗
  • 政府的扶持资金是否缴税
  • 行政事业单位临聘人员
  • MAC OS X 10.12.5 beta 4怎么升级 OS X 10.12.5 beta 4升级图文教程
  • PHP:sys_getloadavg()的用法_misc函数
  • 安全生产专用设备目录
  • wirecut.exe
  • vue3+element-plus Dialog对话框的使用 与 setup 写法的使用
  • php下载功能
  • php面向对象优点,缺点
  • web爬虫视频教程
  • diff命令参数
  • pico实例
  • 分公司可以分配利润吗
  • 增值税专用发票怎么开
  • 社保费用如何入现金流量表
  • 企业年度关联业务往来报告表必须填吗
  • 个体工商户如何用工
  • 偷税行为如何处理
  • MySQL: mysql is not running but lock exists 的解决方法
  • 欠款收不回来了会计分录
  • 车辆通行费
  • 收到工程款时会计分录
  • 申报残保金的时候有处罚决定书怎么办
  • 房租收不回来会计分录
  • 收回应收账款账面余额
  • 代缴社保的好处有哪些
  • 个人独资企业缴纳社保享受优惠么
  • 住宿费专用发票会计分录
  • 现金日记账谁负责
  • 服装、眼镜、鞋、西药的发票如何做账较好?
  • 资本公积和盈余公积的用途
  • 一般纳税人购进税控设备如何抵扣
  • 购入土地使用权以什么为计税依据
  • 新成立公司会计要做哪些事情
  • 公司购买垃圾袋纸巾摘要怎么写好
  • 代办营业执照安全可靠吗
  • mysql 修改密码后 unknown error 1820
  • 安装软件提示windows 无法访问指定设备,路径或文件
  • windows10关闭usb端口
  • 使用u盘安装win10
  • hprof-conv.exe
  • win7系统的设置在哪里设置
  • ubuntu 命令行修改用户密码
  • xp系统怎样阻止脱机窗口弹出
  • linux 744
  • perl and
  • shell编程怎么执行
  • cmd 字符集
  • js设计模式有什么用
  • 动态加载原理
  • node使用
  • 简单的智能家居
  • 土地增值税清算时间要求
  • 出口退税报关单在哪里打印
  • 爱信诺开票系统怎么安装
  • pdf扫描件怎么弄
  • 重庆市低保查询电话
  • 企业补缴公积金 归集额增加
  • 国家税务总局河北地税局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设