开发者如何调用直播SDK或API接入直播功能.docx
《开发者如何调用直播SDK或API接入直播功能.docx》由会员分享,可在线阅读,更多相关《开发者如何调用直播SDK或API接入直播功能.docx(10页珍藏版)》请在冰豆网上搜索。
开发者如何调用直播SDK或API接入直播功能
趣看云视频直播点播效劳
视频直播推流SDKiOS开发指南
版本:
1.0
2016.05
SDK概述
趣看IOS视频直播推流SDK是一个强大的实时直播推流引擎,可用于构建直播互动、美女秀场、远程教育等产品。
SDK提供了构建直播推流所需要的所有核心技术,包括:
音视频管理、音视频采集、编码、网络传输、显示等功能。
SDK支持iOS7.0及以上系统。
开发准备
∙在趣看后台生成账号,获取到账号对应的APPKEY
∙下载视频直播推流iOSSDK
∙解压下载的视频直播推流SDK开发包,将头文件和静态库都导入工程。
∙添加IPCameraSDK依赖库
oUIKit.framework
oCoreImage.framework
oQuartzCore.framework
oAVFoundation.framwork
oOpenGLES.framework
oCoreMedia.framework
oCoreVideo.framework
oCoreGraphics.framework
oSecurity.framework
oFoundation.framework
oCFNetwork.framework
∙在OtherLinkerFlags中添加-ObjC
∙在需要使用SDK的地方importIPCameraSDK.h
直播流程展示图
IOS接口函数调用图
趣看直播使用接入非常简易,只需要接入SDK后,实现流程图中的5个方法,即可实现实时视频直播。
SDK类说明
SDK所有功能都封装在IPCameraSDK类中,下面详细介绍下IPCameraSDK类的功能。
初始化Appkey
+(int)initAppkey:
(NSString*)appkey;
此接口提供用户只需要设置账户的Appkey,即可开通直播权限。
设置后,sdk会发送一个通知Notification,通知中携带Appkey验证信息。
初始化SDK委托
+(void)initSDKDelegate:
(id)delegate;
此接口初始化IPCameraSDK接口,并设置错误消息的回调接口;如果设置了代理,后面sdk产生了错误的消息,会回调方法IPCameraSDKSupportFun。
∙错误回调代理
-(void)IPCameraSDKSupportFun:
(UInt16)typeErrorString:
(NSString*)error
根据返回的错误信息,判断Appkey的验证、直播中错误信息、推流情况。
∙直播完毕后,去除委托
+(void)cleanupDelegate;
直播参数设置
IPCameraSDK中直播相关的参数为:
视频的清晰度、视频的码率、视频的帧率,还可以设置设备朝向,主要用于纠正用户直播中,设备旋转导致的画布显示也旋转的问题。
设置RTMP重连时间,用于在推流连接断开后,进展重连:
∙设置视频清晰度
-(BOOL)setCameraEncodeType:
(NSInteger)encodeType;
∙设置视频码率
+(BOOL)setCameraVideoBitRate:
(NSInteger)videobitrate;
∙设置视频帧率
+(BOOL)setVideoFrame:
(int)videobitrate;
∙设置设备朝向
+(void)setAppOrientation:
(UIInterfaceOrientation)orientation;
目前支持:
竖屏UIInterfaceOrientationPortrait,横屏UIInterfaceOrientationLandscapeRight
∙设置RTMP重连时间
+(void)setRtmpReConnectTime:
(int)iTime;
设置rtmp重连时间,默认为500毫秒重连一次,可以手动更改,参数必须要大于或等于500毫秒
摄像头开关〔startCamera与stopCamera〕
IPCameraSDK提供用户开启和关闭摄像头的操作:
∙直播前开启摄像头
+(int)startCameraNoEncodeType:
(UIView*)viewVideoPath:
(NSString*)videoPathGainValue:
(float)gain_valueOrientation:
(AVCaptureVideoOrientation)OrientationCamera:
(NSInteger)cameraValue;
view:
摄像头采集到的画面,所显示的画布。
VideoPath:
选录像文件,在documents下保存的相对路径,不需要录像可以填nil。
GainValue:
声音增大效果围0–1.
Oreintation:
竖屏拍摄还是横屏拍摄,AVCaptureVideoOrientationPortrait竖拍AVCaptureVideoOrientationLandscapeRight横拍.
CameraValue:
摄像头。
0:
前置摄像头1、后置摄像头。
∙直播完成后关闭摄像头
-(void)stopCamera;
开场和断开推送视频数据
IPCameraSDK提供视频推送数据开启和关闭的接口,方便用户控制那些数据需要推送,那些数据不需要:
∙开场推送视频数据
+(int)startRtmp:
(NSString*)rtmp_server_address;
开启推送视频数据的线程,与中断数据推送相配对。
∙中断数据推送
+(int)stopRtmp;
中断数据推送,中断后,只要摄像头没关闭,还可以调用startRtmp,重新开启视频推送。
开启美颜功能
IPCameraSDK提供接口,开启美颜功能:
+(int)setEffect:
(BOOL)value;
参数Value:
YES开启美颜,NO关闭美颜,返回值0表示成功,-1表示无美颜功能权限,-2表示机器不支持该功能
开启或者关闭音频
IPCameraSDK在开启摄像头后,提供任意时刻的开关音频的功能:
+(void)switchAudio:
(int)audioType;
参数0关闭音频,1开启音频。
直播中修改声音增益的效果
IPCameraSDK在开启摄像头后,提供任意时刻的修改声音增益属性:
+(void)changeGainValue:
(float)gain_value;
参数gain_value围0-1,声音增益的幅度,0最小1最大。
切换摄像头
IPCameraSDK在开启摄像头后,提供在任意时刻的前后摄像头切换功能:
+(BOOL)switchChangeCamera:
(int)cameraValue;
返回切换摄像头成功或者失败,参数0:
启动前置摄像头1:
启用后置摄像头。
摄像头闪光灯的开启和关闭
IPCameraSDK在开启摄像头后,可以开启或者关闭闪光灯。
+(BOOL)switchFlash:
(int)flashFlag;
返回开启闪光灯成功或者失败,参数:
0:
关闭闪光灯。
1:
开启闪光灯。
摄像头聚焦模式改变
IPCameraSDK在开启摄像头后,可以改变其聚焦模式。
+(BOOL)switchFocusMode:
(int)focusType;
返回改变聚焦模式成功或者失败,参数:
0:
自动聚焦。
1:
手动聚焦。
∙手动聚焦设置焦点
+(void)manualFocus:
(CGPoint)touchPointTouchView:
(UIView*)view;
在调用switchFocusMode
(1)后,切换到手动聚焦的模式,就可以调用该函数使手机的摄像头修改聚焦的焦点位置。
摄像头焦距改变
IPCameraSDK在开启摄像头并且你的设备系统高于IOS7,设备型号为Iphone5及以上设备,你可以在任意时刻实时改变摄像头的焦距:
+(void)zoomOut:
(float)scale;
在开启摄像头后,就可以设置摄像机焦距,参数围:
1-10,1物体正常大小10物体被放大多倍。
设置和去除水印
IPCameraSDK提供设置水印的接口,用于给视频添加Logo,在初始化SDK后可以调用:
∙设置水印
+(void)setUserImage:
(UIImage*)logoimgTransparent:
(int)transparentOffset:
(int)offset;
参数transparentlogo图片的透明度0-10之间,0完全透明,10不透明,参数offsetlogo图片的位置0表示设置logo在左上角1表示设置logo在右上角。
每次设置logo前,先调用clearUserImage去除已有logo。
Logo要针对分辨率进展设置,其中,所有16:
9的图像logo标准按照1280*720来的,640*480与352*288的logo需单独设置。
∙去除水印
+(void)clearUserImage;
去除已有logo水印。
直播安康状况、实时流量以及总流量的统计
IPCameraSDK提供设置查询直播安康状况、实时流量、总流量的接口,还能清空当前总流量的统计。
∙查询视频安康状况
+(int)getNetPercent;
该函数用于检测当前直播时网络数据发送的状态。
如果数据发送不流畅,比方返回值大约为2或3,那么视频观看可能会发现略微有些卡顿;如果网络状态为0或1,那么视频可能会非常的卡,或者网络不通。
用户可以根据这个值,考虑如何改善现场的网络情况。
∙查询视频实时流量
+(double)getNowFlow;
获取用户直播时候前一秒消耗的流量
∙查询视频总流量
+(double)getAllFlow;
获取用户直播总流量,总流量数据不手动清空,会在本次APP运行中一直叠加
∙清空总流量统计
+(void)clearAllFlow;
清空总流量消耗统计
直播sdk版本号
IPCameraSDK提供接口,获取当前sdk版本号:
+(NSString*)getVersion;
=========================================================================
API文档
IPCameraSDK.h
+(int)initAppkey:
(NSString*)appkey;初始化appkey
+(void)initSDKDelegate:
(id)delegate;设置错误回调通知代理
+(void)cleanupDelegate;去除代理
+(int)startCameraNoEncodeType:
(UIView*)viewVideoPath:
(NSString*)videoPathGainValue:
(float)gain_valueOrientation:
(AVCaptureVideoOrientation)OrientationCamera:
(NSInteger)cameraValue;开启摄像头
+(void)stopCamera;关闭摄像头
+(BOOL)setVideoFrame:
(int)videoframe;设置帧率
+(BOOL)setCameraEncodeType:
(NSInteger)encodeType;设置视频清晰度
+(BOOL)setCameraVideoBitRate:
(NSInteger)videobitrate;设置视频码率
+(void)setAppOrientation:
(UIInterfaceOrientation)orientation;设置设备朝向,目前支持:
竖屏UIInterfaceOrientationPortrait,横屏UIInterfaceOrientationLandscapeRight
+(void)setRtmpReConnectTime:
(int)iTime;rtmp的重连的时间,单位毫秒
+(int)startRtmp:
(NSString*)rtmp_server_address;开启rtmp发送需要传入rtmp的地址0正常-1启动非正常-2APPKEY验证未能正常进展,常为网络不佳情况导致-3地址不和法或者云端地址配置错误-4APPKey是无效的
+(void)stopRtmp;关闭rtmp发送
+(void)setUserImage:
(UIImage*)logoimgTransparent:
(int)transparentOffset:
(int)offset;添加logo,transparent为logo所占的透明度,参数0-10,offset目前支持kImageLeftOffset左边和kImageRightOffset右边
+(void)clearUserImage;清空所有logo
//
+(BOOL)switchFlash:
(int)flashFlag;开启或关闭闪光灯:
0关闭1开启
+(void)switchAudio:
(int)audioType;音频开关:
0关闭音频,1翻开音频
+(BOOL)switchChangeCamera:
(int)cameraValue;摄像头切换:
0前置摄像头,1后置摄像头
+(BOOL)switchFocusMode:
(int)focusType;设置聚焦:
0自动聚焦,1手动聚焦
+(void)manualFocus:
(CGPoint)touchPointTouchView:
(UIView*)view;手动聚焦的聚焦点
+(void)zoomOut:
(float)scale;摄像头焦距设置
+(void)changeGainValue:
(float)gain_value;声音增益,参数float0-1
+(int)setEffect:
(BOOL)value;开启美颜效果,返回:
0表示成功,-1表示无美颜功能权限,-2表示机器不支持该功能
+(int)getNetPercent;直播安康状况
+(double)getAllFlow;获取直播总流量消耗
+(double)getNowFlow;获取直播前一秒流量消耗
+(void)clearAllFlow;清空总流量消耗统计
+(NSString*)getVersion;获取版本号