有SDK源文件如何开发手机sdk软件开发工具包

android 4.4.4?百度地图 Android 定位SDK 开发指南4.2
更新时间:15-02-16 03:18
启发指南v4.2
1. 导入库文件
在最新的库文件。将liblocSDK4.so文件拷贝到libull crap/provideeabdominhas exercisesi目录下。将locSDK4.1.jar文件拷贝到工程的libull crap目录下,并在工程属性-&Jaudio-videoa Build Pwithh-&Libreseeing thwitht supportries入选拔“Add JARs”,选定locSDK4.1.jar,判断后前往。这样您就能够在法式中利用百度地舆围栏SDK了。
2. 设置AndroidMthwithifest.xml2.1 在lothwith标签中声明service组件:每个app具有自己独立的定位service
&serviceoperwithing system:ni ame=”com.bisexualmproveu.locine.f”operwithing system:enequippedd=”true”operwithing system:process=”:remote”&&/service&
2.2 声明利用权限
&!– 这个权限用于举办网络定位–&&uses-permission operwithing system:ni ame=”operwithing system.permission.ACCESS_COARSE_LOCATION”&&/uses-permission&&!– 这个权限用于拜望GPS定位–&&uses-permission operwithing system:ni ame=”operwithing system.permission.ACCESS_FINE_LOCATION”&&/uses-permission&&!– 用于拜望wifi网络音讯,wifi音讯会用于举办网络定位–&&uses-permission operwithing system:ni ame=”operwithing system.permission.ACCESS_WIFI_STATE”&&/uses-permission&&!– 获取运营商音讯,听说指南。用于支撑提供运营商音讯相关的接口–&&uses-permission operwithing system:ni ame=”operwithing system.permission.ACCESS_NETWORK_STATE”&&/uses-permission&&!– 这个权限用于获取wifi的获取权限,wifi音讯会用来举办网络定位–&&uses-permission operwithing system:ni ame=”operwithing system.permission.CHANGE_WIFI_STATE”&&/uses-permission&&!– 用于读取手机现在的形态–&&uses-permission operwithing system:ni ame=”operwithing system.permission.READ_PHONE_STATE”&&/uses-permission&&!– 写入扩展存储,相比看adobe reader 9。向扩展卡写入数据,用于写入离线定位数据–&&uses-permission operwithing system:ni ame=”operwithing system.permission.WRITE_EXTERNAL_STORAGE”&&/uses-permission&&!– 拜望网络,网络定位须要上网–&&uses-permission operwithing system:ni ame=”operwithing system.permission.INTERNET”/&&!—SD卡读取权限,用户写入离线定位数据–&&uses-permission operwithing system:ni ame=”operwithing system.permission.MOUNT_UNMOUNT_FILESYSTEMS”&&/uses-permission&&!–许可应用读取低级别的编制日志文件 –&&uses-permission operwithing system:ni ame=”operwithing system.permission.READ_LOGS”&&/uses-permission&
2.3 import相关类
importcom.bisexualmproveu.locine.BDLimportcom.bisexualmproveu.locine.BDLocineLimportcom.bisexualmproveu.locine.LocineCimportcom.bisexualmproveu.locine.LocineClientOimportcom.bisexualmproveu.locine.BDNotifyL//倘利用到地点指导效用,须要import该类//如果利用地舆围栏效用,须要import如下类importcom.bisexualmproveu.locine.BDGimportcom.bisexualmproveu.locine.BDLocineStwithusCimportcom.bisexualmproveu.locine.GeofenceCimportcom.bisexualmproveu.locine.GeofenceClient.OnAddBDGeofencesResultLimportcom.bisexualmproveu.locine.GeofenceClient.OnGeofenceTriggerLimportcom.bisexualmproveu.locine.GeofenceClient.OnRemoveBDGeofencesResultL
3. 设置AcessKey
利用SDK4.2须要在Mainfest.xml设置Accesskey,设置有误解惹起定位和地舆围栏办事不能一般利用,必需举办Accesskey的精确设置。
设置AccessKey,听听福昕pdf阅读器下载。在lothwith标签中参预
&meta-dwithaoperwithing system:ni ame=”com.bisexualmproveu.lbull crapapi.API_KEY”operwithing system:vhasue=”key”/&//key:启发者请求的key
4. 效用类的利用4.1 利用根本定位效用
根本定位效用指的依照用户现实需求,相比看福昕阅读器绿色版。前往用户现在地点的基础定位办事。包括GPS和网络定位(Wi-Fi和基站定位)效用。根本定位效用同时还支撑纠合定位结束的反地舆编码效用,离线定位,地点指导效用和地舆围栏效用。
4.1.1 初始化LocineClient类
此处须要戒备:LocineClient类必需在主线程中声明。须要Context类型的参数。
Context须要时全进程有效的context:推举用getApplicineConext获取全进程有效的context
publicLocineClient mLocineClient =publicBDLocineListener myListener =newMyLocineListener();publicvoidonCredined() {mLocineClient =newLocineClient(getApplicineContext());//声明LocineClient类mLocineClient.registerLocineListener( myListener );//注册监听函数}
LocineClient类是定位SDK的中心类,完全门径如下:开发。
publicLocineClient ( Context )//须在主线程中声明
设置参数:
publicvoidsetLocOption ( LocineClientOption )
参数:配置定位SDK,详见LocineClientOption类。 表明:2.x版本自此的定位提供API接口,用以在API运转历程中,支撑热切换配置参数。Android。
注册监听函数:
publicvoidregisterLocineListener ( BDLocineListener )
参数:详见BDLocineListener类。 表明:当没有注册监听函数时,无法提倡网络要求。
注册地点指导监听变乱:
publicvoidregisterLocineListener ( BDLocineListener )
封闭/封闭:4。
publicvoidstart();publicvoidstop();
start:发动定位SDK。 stop:封闭定位SDK。调用stop之后,设置的参数LocineClientOption已经保存。
提倡定位:
publicintrequestLocine()
提倡定位,pdf中文版。异步获取现在地点。由于是异步的,所以随即前往,不会惹起梗塞。定位结束在ReceiveListener的门径OnReceive门径的参数中前往。
须要戒备:android。当定位SDK从定位依据判决,地点和上一次没爆发变化,而且上一次定位结束可用时,则不会提倡网络要求,而是前往上一次的定位结束。 前往值:
0:一般提倡了定位。1:学会定位SDK。办事没有发动。2:没有监听函数。6:要求阻隔过短。你知道百度地图。 前后两次要求定位韶华阻隔不能小于1000ms。
要求离线定位:
离线定位效用:用户要求过得基站定位结束会缓保存当地文件。离线定位结束为缓存结束,精度低于在线的定位结束。
离线定位结束没有地址音讯。
publicintrequestOfflineLocine()
提倡离线定位,异步获取现在地点。学会pdf编辑器中文版。由于是异步的,所以随即前往,不会惹起梗塞。定位结束在ReceiveListener的门径OnReceive门径的参数中前往。
0:一般提倡了定位。android4.4.2。1:办事没有发动。2:没有监听函数。Android。
解除监听函数:
publicvoidunRegisterLocineListener(BDLocineListener listener)
解除监听函数。
地点指导相关函数:
//注册地点指导监听变乱publicvoidregisterNotify(BDNotifyListener mNotify)//解除地点指导监听变乱publicvoidremoveNotifyEvent(BDNotifyListener mNotify)
4.1.2 完毕BDLocineListener接口
BDLocineListener接口有2个门径须要完毕: 1.接纳异步前往的定位结束,参数是BDLocine类型参数。想知道android 4.4.3。
publicclbummMyLocineListenerimplementsBDLocineListener {@OverridepublicvoidonReceiveLocine(BDLocine locine) {if(locine ==null)StringBuffer sb =newStringBuffer(256);sb.postingd(“time : “);sb.postingd(locine.getTime());sb.postingd(“\nerror code : “);sb.postingd(locine.getLocType());sb.postingd(“\nlwithitude : “);sb.postingd(locine.getLwithitude());sb.postingd(“\nlontitude : “);sb.postingd(locine.getLongitude());sb.postingd(“\nrdriving instructorus : “);sb.postingd(locine.getRdriving instructorus());if(locine.getLocType() == BDLocine.TypeGpsLocine){sb.postingd(“\nspeed : “);sb.postingd(locine.getSpeed());sb.postingd(“\nsdinedllite : “);sb.postingd(locine.getSdinedlliteNumbe morer());}elseif(locine.getLocType() == BDLocine.TypeNetWorkLocine){sb.postingd(“\npostingdr : “);sb.postingd(locine.getAddrStr());}logMsg(sb.toString());}}
BDLocine类,封装了定位SDK的定位结束,在BDLocineListener的onReceive门径中获取。经过该类用户能够获取error code,地点的坐标,精度半径等音讯。完全门径如下:
获取error code:
publicintgetLocType ( )
前往值:听说android。
61 : GPS定位结束62 : 扫描整合定位依据退步。此时定位结束有效。63 : 网络异常,没有乐成向办事器提倡要求。此时定位结束有效。65 :pdf。 定位缓存的结束。66 : 离线定位结束。经过requestOfflineLocaiton调用时对应的前往结束67 : 离线定位退步。经过requestOfflineLocaiton调用时对应的前往结束68 : 网络连接退步时,查找当地离线定位时对应的前往结束161: 表示网络定位结束162~167: 办事端定位退步502:相比看android开发。key参数舛讹505:key不保存可能作歹601:key办事被启发者自己禁用602:key mcode不配合501~700:key考证退步
如果不能定位,请记住这个前往值,并到我们的hi群可能贴吧中交换。若前往值是162~167,请发送邮件至mapapi@反应。定位SDK。
获取经纬度坐标:
publicdoublegetLwithitude ( )//获取维度publicdoublegetLongitude ( )//获取经度
获取定位的坐标。坐标的类型在setLocineClientOption门径中设定。
获取定位精度:
publicboolethwithhseeing thwithRdriving instructorus ( )//判断能否有定位精度半径publicflowithgetRdriving instructorus ( )//获取定位精度半径,单位是米
获取文字形貌的地址(反地舆编码):
publicString getAddrStr ( )//获取反地舆编码
唯有益用网络定位的环境下,才华获取现在地点的反地舆编码形貌。
自定位SDK2.6版本之后,android 播放flash。支撑获取省/市/分别级地舆音讯:
publicString getProvince ( )//获取省份音讯publicString getCity ( )//获取都市音讯publicString getDistrict ( )//获取区县音讯
获取手机方向音讯:
publicflowithgetDirection()//获得手机方向,周围【0-360】,手机上部正朝向北的方向为0°方向
4.1.3 设置定位参数
设置定位参数包括:定位形式(高精度定位形式,低功耗定位形式和仅用设备定位形式),前往坐标类型,能否翻开GPS等等。
高精度定位形式:这种定位形式下,会同时利用网络定位和GPS定位,学会迷你pdf阅读器。优先前往最高精度的定位结束;
低功耗定位形式:这种定位形式下,不会利用GPS,只会利用网络定位(Wi-Fi和基站定位);
仅用设备定位形式:这种定位形式下,相比看adobe acrobat xi pro。不须要连接网络,只利用GPS举办定位,这种形式下不支撑室内环境的定位。
LocineClientOption option =newLocineClientOption();Option.setLocineMode(LocineMode.Hight_Accurair-cony);//设置定位形式option.setCoorType(“bd09ll”);//前往的定位结束是百度经纬度:默许值gcj02option.setScthwithSpthwith(5000);//设置提倡定位要求的阻隔韶华为5000msoption.setIsNeedAddress(true);//前往的定位结束包括地址音讯option.setNeedDeviceDirect(true);//前往的定位结束包括手机机头的方向mLocClient.setLocOption(option);
LocineClientOption类,该类用来设置定位SDK的定位方式,完全门径如下:
设置定位形式
//Hight_Accurair-cony高精度、Bwithtery_Saudio-videoi formwithng低功耗、Device_Sensors仅设备(GPS)publicvoidsetLocineMode(LocineMode mode)
设置翻开GPS
setOpenGps(boolethwith)
设置能否翻开gps,利用gps前提是用户硬件翻开gps。翻译pdf文件软件。默许是不翻开gps的。
设置能否须要设备方向音讯
//在网络定位中,获取手机机头所指的方向publicvoidsetNeedDeviceDirect(boolethwith)
设置能否须要地址音讯
setIsNeedAddress(boolethwith)
设置能否要前往地址音讯,默许为无地址音讯。
publicvoidsetAddrType ( String )
String 值为 everyone时,表示前往地址音讯,其他值都表示不前往地址音讯。
设置坐标类型:
设置前往值的坐标类型。
publicvoidsetCoorType ( String )
我们支撑前往若干种坐标系,你知道4。包括国测局坐标系、百度坐标系,须要更多坐标系请接洽我们,须要深度配合。目前这些参数的代码为。因而须要在要求时指定类型,如果不指定,默许前往百度坐标系。戒备当仅输出IP时,air for android。不会前往坐标。目前这些参数的代码为
前往国测局经纬度坐标系 coor=gcj02前往国测局经纬度坐标系 coor=gcj02前往百度经纬度坐标系 coor=bd09ll
百度手机地图对外接口中的坐标系默许是bd09ll,如果配合百度地图产品的话,须要戒备坐标系对应题目。 相关坐标系的更多题目,请看罕见题目
设置产品线称号:
publicvoidsetProdNi ame ( String )
设置产品线称号。热烈建议您利用自定义的产品线称号,便当我们自此为您提供更高效准确的定位办事。开发指南4。
设置定位韶华阻隔:
publicvoidsetScthwithSpthwith (int)//设置定时定位的韶华阻隔。单位ms
当所设的整数值大于等于1000(ms)时,定位SDK外部利用定时定位形式。4。调用requestLocine( )后,每隔设定的韶华,定位SDK就会举办一次定位。如果定位SDK依照定位依据发掘地点没有爆发变化,你看4。就不会提倡网络要求,前往上一次定位的结束;如果发掘地点更改,就举办网络要求举办定位,取得新的定位结束。定时定位时,调用一次requestLocine,会定时监听到定位结束。当不设此项,可能所设的整数值小于1000(ms)时,采用一次定位形式。pdf阅读器。每调用一次requestLocine( ),定位SDK会提倡一次定位。要求定位与监听结束逐一对应。设定了定时定位后,你看android4.4 emui2.3。能够热切换成一次定位,须要重新设置韶华阻隔小于1000(ms)即可。locineClient对象stop后,将不再举办定位。如果设定了定时定位形式后,屡次调用requestLocine(),则是每隔一段韶华举办一次定位,百度地图。同时特地的定位要求也会举办定位,但频次不会超出跨越1秒一次。你看4。
设置地点指导接口:
publicvoidregisterNotify( BDNotifyListener mNotify )LocineClient注册地点指导监听变乱publicvoidremoveNotifyEvent( BDNotifyListener mNotify )LocineClient解除地点指导监听变乱
4.1.4 提倡定位要求
提倡定位要求。要求历程是异步的,定位结束在下面的监听函数onReceiveLocine中获取。对比一下发指。
if(mLocClient !=null&& mLocClient.isStarted())mLocClient.requestLocine();elseLog.d(“LocSDK4″:”locClient is null or not started”);
4.1.5 提倡离线定位要求
提倡离线定位要求。要求历程是异步的,定位结束在下面的监听函数onReceiveLocine中获取。 getLocTypte = BDLocine.TypteOfflineLocine || BDLocine.TypeOfflineLocineFail 表示是离线定位要求前往的定位结束
if(mLocClient !=null&& mLocClient.isStarted())mLocClient.requestOfflineLocine();
4.1.6 地点指导利用
地点指导最多指导3次,3次事后将不再指导。 倘使须要再次指导,你看2。可能要修正指导点坐标,都可经过函数SetNotifyLocine()来完毕。
//地点指导相关代码mNotifyer =newNotifyLister();mNotifyer.SetNotifyLocine(42.0:113.:3000:”gps”);//4个参数代表要地点指导的点的坐标,完全含义次序递次为:纬度,经度,距离周围,坐标系类型(gcj02:gps:bd09:bd09ll)mLocineClient.registerNotify(mNotifyer);//注册地点指导监听变乱后,能够经过SetNotifyLocine 来修正地点指导设置,学习android。修正后立刻成效。//BDNotifyListner完毕publicclbummNotifyListerextendsBDNotifyListener{publicvoidonNotify(BDLocine mlocine:flowithdistthwithce){mVibreseeing thwitht supporttor01.vibrdined(1000);//振动指导已到设定地点相近}}//解除地点指导mLocineClient.removeNotifyEvent(mNotifyer);
4.2利用地舆围栏办事Beta
地舆围栏办事提供的是基于地点的指导办事,相看待SDK从来提供的地点指导效用,地舆围栏办事经过SDK自己的外部逻辑,大幅度消沉地点指导办事的功耗环境。学习开发指南4。经过利用地舆围栏办事,第三方APP能够在低能耗的形式下紧张完毕地点指导办事。
4.2.1 初始化GeofecenClient类
此处须要戒备:GeofenceClient类必需在主线程中声明。须要Context类型的参数。
Context须要时全进程有效的context:推举用getApplicineConext获取全进程有效的context。publicGeofenceClient mGeofenceClient =publicvoidonCredined() {mGeofenceClient =newGeofenceClient(getApplicineContext();}
4.2.2 完毕增加和删除围栏的回调接口
增加围栏回调:OnAddBDGeofencesResultListener
完毕如下:
publicclbummAddGeofenceListenerimplementsOnAddBDGeofencesResultListener {@OverridepublicvoidonAddBDGeofencesResult(intstwithusCode: String geofenceRequestId) {if(stwithusCode == BDLocineStwithusCodes.SUCCESS) {//围栏创造乐成}}}
删除围栏回调:OnRemoveBDGeofencesResultListener
完毕如下:
publicclbummRemoveFenceListenerimplementsOnRemoveBDGeofencesResultListener {@OverridepublicvoidonRemoveBDGeofencesByRequestIdsResult(intstwithusCode: String[] geofenceRequestIds) {if(stwithusCode == BDLocineStwithusCodes.SUCCESS) {//围栏删除乐成}}}
4.2.3 完毕并注册OnGeofenceTriggerListener回调接口
publicclbummGeofenceEnterListerimplementsOnGeofenceTriggerListener {@OverridepublicvoidonGeofenceTrigger(String geofenceRequestId) {//进入围栏,相比看地图。围栏Id = geofenceRequestId}@OverridepublicvoidonGeofenceExit(String geofenceRequestId) {//加入围栏,福昕阅读器绿色版。围栏Id = geofenceRequestId}//注册并封闭围栏扫描办事mGeofenceClient .registerGeofenceTriggerListener(newGeofenceEnterLister());mGeofenceClient.start();}
4.2.4 设置围栏参数
围栏参数包括:id:围栏Id、x:y:围栏坐标点经纬度、ni ame:半径类型(RADIUS_TYPE_SMALL、RADIUS_TYPE_MIDDELE、RADIUS_TYPE_LARGE)、expir:围栏的有效韶华,单位毫秒(最长能够设置1个月)、coordType:坐标类型(COORD_TYPE_BD09、COORD_TYPE_BD09LL、COORD_TYPE_GCJ)、 完全如下:
BDGeofence fence =newBDGeofence.Builder().setGeofenceId(id).setCircularRegion(x: y: type). setExpirineDruine(expir). setCoordType(coordType).work();
4.2.5 提倡围栏增加和删除要求
//增加一个围栏:mGeofenceClient.postingdBDGeofence(fence:newAddGeofenceListener());//删除,指定要删除围栏的名字列表List&string& fences =newArrayList&string&();fences.postingd(fenceId);mGeofenceClient. removeBDGeofences(fences:newRemoveFenceListener());&/string&&/string&
5. 须要戒备的题目定位SDK必需注册GPS和网络的利用权限。利用定位SDK请保证网络连接流通(GPS定位方式不须要连网)。我们热烈建议您设置自己的prodNi ame,我不知道定位。并保管好,这样便当我们为您提供更好的定位办事。若须要前往的定位结束里包括地址音讯,请保证网络连接。定位SDK能够前往bd09、bd09ll、gcj02三品种型坐标,若须要将定位点的地点经过百度Android地图 SDK举办地图出现,请前往bd09ll,将无过失的叠加在百度地图上。有的挪动转移设备锁屏后为了省电会主动封闭网络连接,此时网络定位形式的定位生效。此外,锁屏后挪动转移设备若进入cpu休眠,2。定时定位效用也生效。若您须要完毕在cpu休眠形态仍需定时定位,能够用scbe morecome the pparseeing thwithites offMthwithyearsr 完毕1个cpu可叫醒的timer,定时要求定位。我不知道sdk百度adobe reader官方看着4androidandroid4.4新特性查看: 12294|回复: 3
在iPhone项目中使用讯飞语音SDK实现语音识别和语音合成
TA的每日心情懒 16:24签到天数: 27 天[LV.4]偶尔看看III已加入:&
本帖最后由 Koson 于
11:35 编辑
& &&&现在很多手机应用中都出现了语音功能,比如:QQ音乐的语音输入进行搜素、google的语音、最近中国移动联合讯飞发布的《灵犀》手机应用,都有集成语音的功能,而且识别率也是非常的不错,比如《灵犀》中的可以通过语音实现发送短信、拨打电话功能(离线可使用),自己使用了一下,还是比较的方便,而对于一些更高级的功能却会需要在联网的情况下才能使用(查询天气、查询股票、上网搜索、听新闻、地图导航、翻译以及聊天等等功能)。大致介绍了一些,就进入正题,下面讲一讲如何使用讯飞的语音SDK加入到你的iPhone应用中吧!
1.首先请先到()。如果你还没有注册,那么需要先注册一个开发者账号的。点击网站顶部的“免费注册”即可,使用你的自己的手机号码注册一个账号。
2.仅仅注册了一个开发者账号还可以使用SDK,因为还需要申请Appid。登陆之后到自己的个人中心创建一个应用填写好相关信息,然后等待审核通过,因为只有审核通过之后,你才可以下载讯飞语音的SDK。如下:
上午11.01.43.png (135.63 KB, 下载次数: 217)
11:03 上传
3.如果你的应用已经审核通过,点击SDK下载,并且选择对应平台的SDK,比如现在选择iphone平台SDK下载。
4.下载好了之后,你会看到一个压缩包,解压出来有四个文件,
上午11.06.17.png (6.68 KB, 下载次数: 171)
解压之后文件
11:06 上传
其中sample就是讯飞提供的DEMO了,打开项目,你会看到这样的目录结构:
上午11.08.30.png (78.57 KB, 下载次数: 181)
DEMO目录结构
11:09 上传
直接运行,并没有错误,只有几个警告,运行界面如下:
上午11.11.02.png (133.35 KB, 下载次数: 203)
11:11 上传
上午11.11.29.png (112.28 KB, 下载次数: 178)
11:12 上传
5.那么怎么在自己的项目中使用呢?其实还是非常简单的。讯飞也有提供相关的开发文档,还是比较详细。在开发者专区和下载专区都有文档可供下载。
6.新建一个iPhone 项目吧。新建好了之后,需要先导入需要的lib,如下:
上午11.16.35.png (21.33 KB, 下载次数: 186)
11:16 上传
其中需要说明的是,iflyMSC.framework这个lib就在你下载的SDK解压文件下的lib文件夹下。在添加lib的界面选择Add Others...,并且选择你下载的lib。点击Open,就能正确添加。
上午11.19.54.png (68.63 KB, 下载次数: 183)
选择iflyMSC.framework
11:20 上传
7.一些函数和配置的说明:
在你需要使用SDK的头文件中导入文件:#import &iFlyMSC/IFlyRecognizeControl.h&
#import &iFlyMSC/IFlysynthesizerControl.h&复制代码创建一个识别控件或者合成控件:IFlyRecognizeControl& & *_iFlyRecognizeC& & //識別控件
IFlySynthesizerControl&&*_iFlySynthesizerC& &&&//合成控件复制代码在实现文件初始化控件://初始化語音識別控件
& & _iFlyRecognizeController = [[IFlyRecognizeControl alloc] initWithOrigin:CGPointMake(20, 70) initParam:initPara];
& & [self.view addSubview:_iFlyRecognizeController];
& &
& & //Configure
& & [_iFlyRecognizeController setEngine:@&sms& engineParam:nil grammarID:nil];
& & [_iFlyRecognizeController setSampleRate:16000];
& & [_iFlyRecognizeController setDelegate:self];
& & [_iFlyRecognizeController setShowLog:NO];
& &
& & //註冊unActive事件
& & [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resignActive) name:UIApplicationWillResignActiveNotification object:nil];
& &
& & //初始化語音合成控件
& & _iFlySynthesizerControl = [[IFlySynthesizerControl alloc] initWithOrigin:CGPointMake(20, 70) initParam:initPara];
& &
& & //Configure
& & [_iFlySynthesizerControl setDelegate:self];
& & [_iFlySynthesizerControl setVoiceName:@&vixm&];&&//發音人(中英文粵語)
& & [self.view addSubview:_iFlySynthesizerControl];
& &
& & //show UI
& & [_iFlySynthesizerControl setShowUI:YES];
& &
& & //show log
& & [_iFlySynthesizerControl setShowLog:NO];
& &
& & //註冊unActive事件
& & [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resignactiveOfSynthesizer) name:UIApplicationWillResignActiveNotification object:nil];复制代码一些回调函数和方法://識別結束回調函數-會話過程結束調用此函數
- (void)onRecognizeEnd:(IFlyRecognizeControl *)iFlyRecognizeControl theError:(int)error
{
& & [_recognizeButton setEnabled:YES];
& & [_synthesizerButton setEnabled:YES];
& & NSLog(@&識別結束&);
& & NSLog(@&上傳流量:%d,下載流量:%d&,[iFlyRecognizeControl getUpflow:FALSE],[iFlyRecognizeControl getDownflow:FALSE]);
}
//識別結果回調函數
- (void)onResult:(IFlyRecognizeControl *)iFlyRecognizeControl theResult:(NSArray *)resultArray
{
& & NSString *strResult = [[resultArray objectAtIndex:0] objectForKey:@&NAME&];
& & NSLog(@&識別的結果是:%@&,strResult);
}
//開始語音識別
- (void)onButtonRecognize
{
& & if ([_iFlyRecognizeController start]) {
& && &&&[_recognizeButton setEnabled:NO];
& && &&&[_synthesizerButton setEnabled:NO];
& & }
}
//不支持後台模式則在unActive事件時執行cancel
- (void)resignActive
{
& & [_iFlyRecognizeController cancel];
}
//合成回調函數,執行cancel函數整個會話結束調用此函數
- (void)onSynthesizerEnd:(IFlySynthesizerControl *)iFlySynthesizerControl theError:(int)error
{
& & [_synthesizerButton setEnabled:YES];
& & [_recognizeButton setEnabled:YES];
& & NSLog(@&結束&);
& & NSLog(@&上傳流量:%d,下載流量:%d&,[iFlySynthesizerControl getUpflow:FALSE],[iFlySynthesizerControl getDownflow:FALSE]);
}
//獲取播放器緩衝進度
- (void)onSynthesizerBufferProgress:(float)bufferProgress
{
& & NSLog(@&當前緩衝進度:%f&,bufferProgress);
}
//獲取播放器播放進度
- (void)onSynthesizerPlayProgress:(float)playProgress
{
& & NSLog(@&當前播放進度:%f&,playProgress);
}
//開始語音合成
- (void)onButtonSynthesizer
{
& & [_iFlySynthesizerControl setText:@&哈哈,这仅仅是一个测试合成功能的例子而已,你不用太紧张会发生什么特别的事情。谢谢& params:nil];
& & if ([_iFlySynthesizerControl start]) {
& && &&&[_recognizeButton setEnabled:NO];
& && &&&[_synthesizerButton setEnabled:NO];
& & } else {
& && &&&NSLog(@&I'm sorry,start error. &);
& & }
}
//不支持後台模式則unActive事件時執行cancel
- (void)resignactiveOfSynthesizer
{
& & NSLog(@&resignActive&);
& & [_iFlySynthesizerControl cancel];
}
复制代码其中下列方法可以在自己需要开始使用语音功能的地方调用,比如:_recognizeButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
& & _synthesizerButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
& & [_recognizeButton setFrame:CGRectMake(70, 100, 180, 60)];
& & [_synthesizerButton setFrame:CGRectMake(70, 200, 180, 60)];
& & [_recognizeButton setTitle:@&開始語音識別& forState:UIControlStateNormal];
& & [_synthesizerButton setTitle:@&開始語音合成& forState:UIControlStateNormal];
& &
& & [_recognizeButton addTarget:self action:@selector(onButtonRecognize) forControlEvents:UIControlEventTouchDown];
& & [_synthesizerButton addTarget:self action:@selector(onButtonSynthesizer) forControlEvents:UIControlEventTouchDown];
& &
& & [self.view addSubview:_recognizeButton];
& & [self.view addSubview:_synthesizerButton];
//開始語音識別
- (void)onButtonRecognize
{
& & if ([_iFlyRecognizeController start]) {
& && &&&[_recognizeButton setEnabled:NO];
& && &&&[_synthesizerButton setEnabled:NO];
& & }
}
//開始語音合成
- (void)onButtonSynthesizer
{
& & [_iFlySynthesizerControl setText:@&这仅仅是一个测试合成功能的例子,你不用太紧张会发生什么& params:nil];
& & if ([_iFlySynthesizerControl start]) {
& && &&&[_recognizeButton setEnabled:NO];
& && &&&[_synthesizerButton setEnabled:NO];
& & } else {
& && &&&NSLog(@&I'm sorry,start error. &);
& & }
}复制代码8.到这里已经可以使用语音识别和合成功能了。如下:
上午11.31.34.png (98.16 KB, 下载次数: 196)
11:32 上传
上午11.31.40.png (107.88 KB, 下载次数: 184)
11:32 上传
上午11.31.52.png (111.36 KB, 下载次数: 187)
11:33 上传
TA的每日心情开心3&天前签到天数: 399 天[LV.9]以坛为家II已加入:&已加入:&
你现在是不是主要搞Iphone的开发呀
飞哥看我发的就大致可以明白了,iPhone要做,web也要做。哈哈,最近完成了web估计很快就有ios的Project了。&
TA的每日心情懒 16:24签到天数: 27 天[LV.4]偶尔看看III已加入:&
站长苏飞 发表于
你现在是不是主要搞Iphone的开发呀
飞哥看我发的就大致可以明白了,iPhone要做,web也要做。哈哈,最近完成了web估计很快就有ios的Project了。
TA的每日心情开心3&天前签到天数: 399 天[LV.9]以坛为家II已加入:&已加入:&
Iphone的我不懂,只知道怎么动态打包,呵呵
( 豫ICP备号-1)}

我要回帖

更多关于 车牌识别sdk开发包 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信