文稿使用说明android-xpai lib manual 446_第1页
文稿使用说明android-xpai lib manual 446_第2页
文稿使用说明android-xpai lib manual 446_第3页
文稿使用说明android-xpai lib manual 446_第4页
文稿使用说明android-xpai lib manual 446_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-­­2--文档版修改章修正日2012-09-取消toggleHRecorder接口2012-10-2012-10--­­2--文档版修改章修正日2012-09-取消toggleHRecorder接口2012-10-2012-10-废除setDefaultStreamTypeacitivitygetVideoWidth和getVideoHeight改为2013-10-1.2013-10-2013-12-1.connectVSVS2013-12-2013-12-1.300 题2014-01-1.使用高通芯片,并且解决平台版本在4.1以上的手机如小米22014-02--­­3--2.规避小米2qcif硬编崩溃的问存在的API导致应用一启动-­­3--2.规避小米2qcif硬编崩溃的问存在的API导致应用一启动就崩溃的问题2014-02-1.2014-02-1.增加Manager.setDescentFpsParam接2014-03-播放SDK增加了一个MSD_READ_ERROR消息,用于在网络读错误DemoPlayer用于演示播放器如何实DemoPlayer2014-03-1.解决网络条件较差时延迟较大的问2014-03-实现拍摄暂停、继续的功能,除了Android/软编都支持此特性,包括直播上传。(具体使用参考Demo中ManHandler.java中的btnRecordPause按钮相关代码)改进原Manager.takePicture接口,可MainHandler.java中btnTakePictureListener相关代码)2014-04-解决播放器释放资源错序导致偶然异常退出的问题2014-04-1.解决在开始录制时暂停时间未2014-04-1.解决硬编码模式下离线录制的2014-04-GoogleGlass(支持720p@20fps录制)Android平台4.3版本以EGL修改网络连接接口(Manager.ntNet)为非阻塞模式,避免主线程阻塞,这样应用就可以在登录时绘制动画或提示信息网络接口支持buffer参数,应用可以根据应用-­­4--previewbufferManagerRecordStatus加入UPLO-­­4--previewbufferManagerRecordStatus加入UPLOADING状态,以标识正在进行视频文件上传的流,防止同支持断点续传离线录制视频文件离线视频文件可以重新上传吗,离线视频列表开始上streamid,不能续传的需求改进sdk文件改名的逻辑,无法续传的文件名统一以时间戳方式命名,类似于20140520134858.mp4,上传中断的文件(可以续传)统一以_Li开头命名,类似于AHandler.onLocalFilename1.修复:onLocalFilename2014-05-数据期间断开网络时sdk没有正确回调onLocalFilename2014-05-1.恢复40x版本以来的被删除Manager.connectVS接口,但接口形式有所变2014-05-由于note2egl性能不理想720p只能达到7fps,因此禁止4.3版本上的note2使用egl速模式,在支持egl加速的机型上允许览preview,测试了拍照功能2014-06-note2egluvegl加速模式,在此模式下支持拍摄暂停2014-06-Manager.setPictureSize()接口,单独在调用setPictureSize-­­5--egl加速后软编不能正常工作的问移除Manager.setSurfaceHolder1由于未能适配三星tab2,tab3的硬-­­5--egl加速后软编不能正常工作的问移除Manager.setSurfaceHolder1由于未能适配三星tab2,tab3的硬此设Manager.getSupportedFps接口以供应用查询摄像头支持的fps修改Manager.setVideoFrameRate为Manager.setVideoFpsRange(intmin_fps,intmax_fps)demofps设置菜单,演示如修复离线拍摄过程中暂停后马上上传此文件时由于时间戳计算不对1.解决暂恢复拍摄过程中有一定几率导致解决本地缓冲管理逻辑中多线程处理不当导致客户端发出不完整数据包而引起的服务器关闭连接的问题,此问题出现的概率非常低GoogleglassdemopreviewsurfacedestorystopRecord,防止加入zoom支持功能(参考相关代码在MainHandler.class类中的zoomControls部分zoomin/zoomout-­­6--支持Android4.3及以上操作系统,参考XPAndroidorientationListener监听)1.Manager.startRecord增加output_tag参务器xvs-1.5.0a-25-g4647942或以上版本glass上播放推送的语音消息,需要服务-­­6--支持Android4.3及以上操作系统,参考XPAndroidorientationListener监听)1.Manager.startRecord增加output_tag参务器xvs-1.5.0a-25-g4647942或以上版本glass上播放推送的语音消息,需要服务避免安装后没有建立/sdcard/xpai目录导致googleglassnote3和小米2egl反1.挑战认证模式加上服务码字1.初步实现拍摄过程中静音,静音时释放音频采支持语音消息为mp3,可根据语音消息包类型toggleMute(onoff)和isMutesdkDemotcp2015-06-1.增加直播播放模式,通过Player的构造函数传人newString[]{"-live"}参数实现2015-07-1Player的构造函数传入newString[]{“-fullscreen”}参数实现2015-07-1.publicbooleanonConnectFail()更新为带publicBooleanonConnectFail(interror_no)2.实现视频打点功能,详见Transcoder述2015-08--­­7--新-­­7--新增网络自适应APIAAC硬编码,以支持在高音质录音环境publicstaticBooleanpeaudio_encode_type,intchannels,intsample_rate,intbit_rate)新增APIconnectCloud()(详见api说明),以前连接直播云的接口initNet将无法登录成功,请使用connectCloud接口,私有云连接使用connectVS接2015-09-目录1引 2SDK说 3术语定 4数据类目录1引 2SDK说 3术语定 4数据类 录制的类型 音频编码类型 5接口说 .xpai.Manager说 .xpai.AHandler说 .xpai.core.Transcoder说 6播放器使用说 直播模 全屏模 仅播放语 7使用说 一般使用说 Preview在非主Activity中使用SDK的说 如果离线拍摄后再上传视频文件或是断点续 拍摄照 上传照 横屏/竖屏拍摄设置信 特别注意 -­­8--1引2SDK1引2SDKcore3术语-­­9--。4数据录制的类音频编码-­­10--值enum值4数据录制的类音频编码-­­10--值enum值enum5接口5.1.xpai.Manager离线拍摄、断点续传等工作。此类具体包括以下接口-­­11--publicstaticList<CameraID>查询5接口5.1.xpai.Manager离线拍摄、断点续传等工作。此类具体包括以下接口-­­11--publicstaticList<CameraID>查询当前可用的摄像头,每次调用时都会进行查询,因此应用在确定没有外接摄像头时,只IDpublicstaticvoidSDKinitactivityonDestroy无publicstaticintinit(Activityactivity,AHandlerSDK,此方法必须在其他所有ApiSDKApicore当其被应用使用时,需要得知应用的上下文环境,需要传入一个acitivtyhandler一个实现Ahandler有事件回调接口的类的实例,core通过回调机制来通知应用发生的各种事件,AHandlercore供的一个回调接口的基类,应用需要继承Ahandler并实现其中所有的虚函数。然后通过此方法将实现的接口类的实Manager。在相应的示例程序中,继承AHandler是XPHandler.java,开发者应该完全理解这个类后应的开发设计工作。AHandler接口可5.2节的说明0初始化成功,非0初始化失败initNet(该接口将被废除,请connectCloud接口-­­12--publicstaticbooleaninitNet(StringinitNet(该接口将被废除,请connectCloud接口-­­12--publicstaticbooleaninitNet(Stringps_host,intps_port,inttimeout,Stringservice_code,int原来这个接口的调用是阻塞的,函数直接返回是否连接成功。现在这个函数是非阻塞的,调用后马上返回。如果调用时网络已经建立,则返false,否则失败。(初:初始化网络initNet,publicstaticvoidsetNetTimeout(int网络超时时间,单位是无publicstaticCameraID获取当前摄像头staticpublicList<Resolution>getSupportedVideoResolutions获取当前摄像头支持的视频分辨率,在调用了setCameraId切换摄像头之后,需要重新调用此方finalstatic List<RecordMode>获取当前可用的录制模式,录制模式和摄像头有关,因此在调用了setCameraId切换摄像头之后-­­13--publicstatibooleanconnectVS(Stringps_host,intps_port,inttimeout,Stringservice_code,int此接口用于直连VS(使用私用云时用该接口进行连接VSinitNet的补充-­­13--publicstatibooleanconnectVS(Stringps_host,intps_port,inttimeout,Stringservice_code,int此接口用于直连VS(使用私用云时用该接口进行连接VSinitNet的补充VSVS见上述initNet接口timeout见上述initNet接口service_code见上述initNet接口buff_sizetrue代表连接成功,false)(连接直播云时,推荐使用 PSPS setNetTimeout设定的超时不一样,这里的超时是建立连接的超时,而setNetTimeout设定的值在 属的应用业务,在建立连接时提供这个服务码,则在这个连接中拍传的视频默认都属于此服务码。连接成功,则通过回调AHandler.onConnected回调通知应用,连接失败则通过AHandler.onConnectFial回调通知应用buff_size(480*360以下),又要求直播延迟较短的应用场合下,可以设置的小一(例如64k,如果拍摄的视频分辨率过大,如720p,可以使用系统默认的大小,也可以得到较小的延迟true代表连接成功,false-­­14--publicstaticbooleantrue当前连接正常,false如果在拍传期间失去服务器连接,根据当前流类型,如果-­­14--publicstaticbooleantrue当前连接正常,false如果在拍传期间失去服务器连接,根据当前流类型,如果是硬编流且续传,则录制继续,上传停止,否同录制结束publicstaticAHandler返回corecore当前使用的回调接口实例publicstaticbooleantrue,publicstatibooleanconnectCloud(String inttimeout,Stringservice_code,intVSapi见上述initNet接口timeout见上述initNet接口service_code见上述initNet接口buff_sizetrue代表连接成功,falseinitNet的更新和优化,请使用该-­­15--publicstaticbooleancoretrue启动摄像头成功,false启动失败publicstaticvoidsetPreviewSurface(SurfaceHolderSurfaceHolder,此函数必须在startPreview-­­15--publicstaticbooleancoretrue启动摄像头成功,false启动失败publicstaticvoidsetPreviewSurface(SurfaceHolderSurfaceHolder,此函数必须在startPreviewstartRecord之前被调无publicstaticvoidsetPreviewSize(intwidth,int设定预览画面的大小,注意并不是设置的预览窗口的大小,预览窗口总是全屏显示。当使用此方法改变了预览画面时,预览正处于打开状态,则需要调用stopPreview和startPreview复位一下预览以生效。无publicstaticvoidtryLogin(Stringuser_name,Stringpass, 无,注意这里并没有返回登录的结果,因为这是一个异步函数,登录的将通过回调通知应用-­­16--publicstaticbooleanuploadFile(String-­­16--publicstaticbooleanuploadFile(String并不代表文件上传成功,此函数被调用后将马上返回,上传成功后通过回调通知应用,相应的回调接口参考AHandler.onUploadFileStart和AHandler.onUploadFileEndpublicstaticvoidtakePicture(Stringpath,intphoto_width,int无publicstaticbooleantruefalsepublicstaticboolean)-­­17--publicstaticbooleanstartRecord(RecordModerecord_mode,intbitrate,booleanforce_really_file,booleanis_offline,Stringoutput_tag,Stringopaque)开始拍传或本地录制视频 当目前已经处于拍摄状态时,调用此方法会返回录制流媒体类型,详细参见上文RecordMode-­­17--publicstaticbooleanstartRecord(RecordModerecord_mode,intbitrate,booleanforce_really_file,booleanis_offline,Stringoutput_tag,Stringopaque)开始拍传或本地录制视频 当目前已经处于拍摄状态时,调用此方法会返回录制流媒体类型,详细参见上文RecordModetrue表示在本地生成视频文件,false表示不在本地生成视频文件,如果不在本地生成视频文件则产生的流媒体不SD产生视频文是否进行离线拍摄,truefalse表示边拍边传,客户端动态指定输出格式标签,默认为任务附加字段,服务器会透传给接口,用于应用之间通过视频服务器传递业务数据,没有设置的话传nulltruefalse,返回false Manager.setSurfaceHolderpublicstaticResolutionpublicstaticbooleansetVideoResolution(intwidth,int设置录制视频的画面大小,此函数必须在Manager.startRecord调用,否则会导致startRecord失败,注意:此处设置的是录制视频的画面大小和照片无关,照片的大小是在Manager.takePicture时传入的。true设置成功,false设置失败-­­18--publicstaticlonggetRecordDuration获取最近一次视-­­18--publicstaticlonggetRecordDuration获取最近一次视频录制的时长,单位ms,此处获取的时长是一个参考值和最终上传后的时长会有很小的差值,以最终上传的值为准publicstaticint获取当前编码的帧率,此函数只有在流媒体类型属于软件编码时才有意义,以此衡量的当前软件编码器的效率,在硬件编码环境时调用此函数无意义。publicstaticint返回当前网络缓存的数据,在拍传视频时,由于网络延迟,可能上传数据的速度小于录制视频产生数据的速度,此时就会产生cache数据,当网络很好的时候,cache的数据经常会保持接近在0byte,当网络条件不好时,cache的数据可能会有累加。cachepublicstaticbooleantrue停止成功,false停止失败,如果停止失败可能会造成同一次中的下一个开始直播调用失败Manager.setVideoResolution设置的画面大小系统Manager.isRecording来查询当前是否处于录制状前面Manager.startPreview网络连接已经异常,但调用startRecordis_offline-­­19--publicenum/**空闲/**正在录制publicstaticvoidsetNetWorkingAdaptive(boolean-­­19--publicenum/**空闲/**正在录制publicstaticvoidsetNetWorkingAdaptive(booleantrue开启,false关闭publicstaticbooleanuploadVideoFile(Stringfile_name,boolean是否是续传文件,core并不知道此文件是否是此前上传一半失败的文件,如果此参false,系统总是将此文件当成一个新的文件来对待,如果此值true,则系统会尝试断点续传。truefalseis_resumefalse,则此函数总是返回truepublicstaticint获取当前网络上行的速率,单位是-­­20--publicstaticvoidsetGlareScene(boolean/**打开强光模式/**关闭强光模式/**一般通过Manager.isGlareScene()来获取-­­20--publicstaticvoidsetGlareScene(boolean/**打开强光模式/**关闭强光模式/**一般通过Manager.isGlareScene()来获取当前强光模式状态publicstaticbooleantoggleMute(boolean/**静音/**false/**一般通过Manager.isMute()来获取当前声音状态true开关静音成功,false开关静音失败publicstaticvoidsetVideoFpsRange(intmin_fps,int设置视频帧率的范围可设置为(20,20),sdk/**20/**20/**暂停/**续传或上传离线视频文件-­­21--publicstaticbooleansetAudioRecorderParams(AudioEncoderTypeaudio_encode_type,intintsample_rate,intAMR_NB-­­21--publicstaticbooleansetAudioRecorderParams(AudioEncoderTypeaudio_encode_type,intintsample_rate,intAMR_NBchannel,sample_rate,bit_rateamrnbchannels1,sample_rate8000,bit_rate当设置编码类型为AAC时,几个参数都有效。sample_rate与bit_rate音频编码类型参见enum声道数,支持的声道数1,2(当编码类型为AMR_NB时,固定取值采样率,支持的采样率有8000,11025,12kHz,16kHz,22.05kHz,kHz,32kHz,44.1kHz,48kHz,64kHz,88.2kHz,96kHz(当编码类型为AMR_NB时,固定取值8000)比特率,支持的比特率可以从8k320kbps(AMR_NBtrue设置成功,falsepublicstaticbooleanforceAuthenMode(int设置认证模式如果不设置/**Manager.HANDSHAKE_CLEAR_PASSWORD为挑战认证模式true设置成功,falsepublicstaticbooleansetZoom(intlevel,boolean/**60,01220的倍数/**是否进行平滑调焦True表示设置成功,flase表示设置失败图5-5.2.xpai.AHandler方法,即由库调用应图5-5.2.xpai.AHandler方法,即由库调用应用,应用不应该主动调用这些方法5.2.15.2.2-­­22--abstractpublicbooleanonConnectFail(int当客户端与服务器建立连接失败时,此方法被回调,应用在此方法的实现中可以弹出一个对话框询问用户是否需要重新尝试建立连接。abstractpublicbooleantrue代表应用处理此事件成功,false代表应用处理失败,一般来在实-­­23--abstractpublicbooleanonParseVideoFileStart(intduration,int在上传本地视频文件时,此方法将被回调,core还会回调onParseVideoFileUpdateabstract-­­23--abstractpublicbooleanonParseVideoFileStart(intduration,int在上传本地视频文件时,此方法将被回调,core还会回调onParseVideoFileUpdateabstractpublicbooleanonLocalFilename(String在硬编模式下,当视频录制完成后,core会回调此方法,以告诉应用视频文件存放的路径和文件名供应用做后续处理,应用可以将获取的信息缓存起来以供后面断点续传或制作本地播放列表等应用实现此方法时总应该返回abstractpublicbooleanonAuthResponse(boolean上显示相应信息以提示用户认证的结果。如果auth_result的值是false,还可以弹出认true代表应用处理此事件成功,false代表应用处理失败,一般来在实abstractpublicbooleancore收到服务器的握手消息时,回调此函数,此事件代表服务器要求客户端提供认证信息,应Manager.tryLogin方法以发起认证请求。可以参考XPHandler.onHandShaketrue代表应用处理此事件成功,false代表应用处理失败,一般来在实true代表应用处理此事件成功,false代表应用处理失败,一般来在实现此方法时总是返true-­­24--abstractpublicbooleanonParseVideoFileEnd(intaudio_pkt_cnt,intvideo_pkt_cnt,int在上传本地视频文件时,此方法将被回调,core还会回调onParseVideoFileStartonParseVideoFileStart,1-nonParseVideoFileUpdate,一次onParseVideoFileEnd代表上传完成。应用可参考-­­24--abstractpublicbooleanonParseVideoFileEnd(intaudio_pkt_cnt,intvideo_pkt_cnt,int在上传本地视频文件时,此方法将被回调,core还会回调onParseVideoFileStartonParseVideoFileStart,1-nonParseVideoFileUpdate,一次onParseVideoFileEnd代表上传完成。应用可参考XPHandler应用实现此方法时总应该返回解析处理的速度,因此当core回调此方法时可能有很多网络包还在本地cache队列中。应用在收到此回调后,应该不断地去通过Manager.getCacheRemaining()检查cache是否为空,直到收到AHandler.onStreamUploaded回调后abstractpublicbooleanonParseVideoFileUpdate(intprocessed_data_size,int在上传本地视频文件时,此方法将被回调,core还会回调onParseVideoFileStartonParseVideoFileEnd代表上传完成。processed_data_sizefile_sizeXPHandlerbyte应用实现此方法时总应该返回onParseVideoFileStart,1-nonParseVideoFileUpdate,一次onParseVideoFileEnd代表上传完成。应用可参考XPHandlerbyte应用实现此方法时总应该返回5.2.9-­­25--abstractpublicbooleanonRecvAudioMessage(intdata_size,Stringcore回调此方法时5.2.9-­­25--abstractpublicbooleanonRecvAudioMessage(intdata_size,Stringcore回调此方法时代表客户端收到了服务器发来的音频消息。core会自动将音频消息存成一个core自动处理播放,参见return的说明。true,则corefalse,corefile_name自己建立一abstractpublicbooleanonRecvTextMessage(Stringfrom,Stringcore应用在实现此方法时可以把msg显示在界面给用户看,参考XPHandler.onRecvTextMessage应用实现此方法时,总应该返回abstractpublicbooleanonRecordFinished(longdata_size,int已经正确停止,才可以调用startRecord进行下次录制,否则可能产生未知错误。录制时长,单位是应用实现此方法时总应该返回-­­26--abstractpublicbooleanonUploadFileEnd(Stringfile_id,String应用调用Manager.uploadFileabstractpublicbooleanonUploadFileStart(String-­­26--abstractpublicbooleanonUploadFileEnd(Stringfile_id,String应用调用Manager.uploadFileabstractpublicbooleanonUploadFileStart(String应用调用Manager.uploadFileonUploadFileEnd应用实现此方法时,总应该返回abstractpublicbooleanonTakePicture(String应用调用Manager.takePicture应用实现此方法时,总应该返回abstractpublicbooleanonStreamUploaded(String视频数据完整上传结束后,此方法被回调。当开始一个数据流(直播、断点续传、离线上传)后,应用在未收到这个回调前都应该hold住,禁止用户发起一个新的数据流。应用实现此方法时,总应该返回abstractpublicbooleanonStreamIdNotify(String当前上传的视频由服务器分配了唯一ID后,core视频在服务器上的唯一应用实现此方法时,总应该返回5.3.xpai.core.Transcoder方法都是回调方法,即由库调用应用,应用不应该主动调用这些5.3.xpai.core.Transcoder方法都是回调方法,即由库调用应用,应用不应该主动调用这些方法-­­27--abstractpublicbooleanonTransVideoFileUpdate(int应用继承Transcoder类后,实现该方法,在调用上述transVideoFile方法后,该方法被回调。返回处理文件的进度值,注意如果文件太短,视频处理会很快完成。应用可以在处理视频时根据该回调进行进度条显示。应用实现此方法时,总应返回publicvoidtransVideoFile(StringinputFileName,StringstartSeconds,Stringduration,应用继承Transcodernullnull(或加上开始时间大于视频的长AHandler.onStreamUploaded类似,在开始一个照片数据流后,在未收到此回调前,应用上传文件在服务器上相应的唯一应用实现此方法时,总应该返回5.3.36播放器使用5.3.36播放器使用6.1直播newString[]{“-live”}参Playerplayer=newPlayer(context,handler,playUrl,newString[]{“-全屏Playerplayer=newPlayer(context,handler,playUrl,newString[]{“-fullscreen”})仅播Demo源码中控制界面不需要即可7使用详细流程参考Demo程序mini.apk的源码-­­28--abstractpublicboolean应用继承Transcoder应用实现此方法时,总应返回7.1般使用说7.1般使用说Manager.init(activity,或在XPhandler.onHandShake中调用Manager.tryLoginXPHandler.onAuthResponse中判断认证是否通过。如果XPHandler.onRecvTextMessage被调用,在其中实现通知用户新XPHandler.onConnectFailManager.startRecord时传入的force_really_file为true的情况下)core会继续拍摄,数据存在本地视频文件中,否则core会自动停止拍摄。应用可以通过调用Manage.isRecording来判断录制是否仍在继续。以后core在网络连接重新建立后,可以通过Manager.uploadVideoFile来进行断点续传.Manager.setPreviewSize-­­29--Manager.startPreviewManager.startRecord时会自动打Manager.setVideoResolutionManager.startRecordis_offlineXPHandler.onLocalFilenameManager.startPreviewManager.startRecord时会自动打Manager.setVideoResolutionManager.startRecordis_offlineXPHandler.onLocalFilenameXPHandler.onStreamIdNotify被调用时,应用应该记录下来当前的streamid以备用,此时代表视频已经通过服务器开始直播了。Manager.getUploadingSpeed获取直播上传数Manager.getCacheRemaining来获取当前由XPHandler.onRecvTextMessage或XPHandler.onRecvAudioMessageManager.stopRecord后不久,XP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论