-
Notifications
You must be signed in to change notification settings - Fork 19
5_Improve
CameraServer 是整个 SDK 的核心类,是所有调用接口的承载者,以下介绍的所有功能都在其中进行。
//推流状态回调
typedef void(^CameraMessage)(UCloudCameraCode code, NSInteger arg1, NSInteger arg2, id data);
//相机回调
typedef void(^CameraDevice)(AVCaptureDevice *dev);
//图像原始数据回调
typedef CMSampleBufferRef (^CameraData)(CMSampleBufferRef buffer);
- 推流状态返回
状态枚举 | 描述 |
---|---|
UCloudCamera_STARTED = 7 | 推流进行中 |
UCloudCamera_OUTPUT_ERROR = 10 | 推流错误 |
UCloudCamera_BUFFER_OVERFLOW = 14 | 推流上行带宽不足 |
UCloudCamera_SecretkeyNil = 15 | SDK 密钥(accessKey)为空 |
UCloudCamera_DomainNil = 16 | 推流域名为空 |
UCloudCamera_AuthFail = 17 | SDK 鉴权失败 |
UCloudCamera_PreviewOK = 19 | 预览视图准备好 |
UCloudCamera_PublishOk = 20 | 底层推流配置完毕 |
UCloudCamera_CannotConnect = 24 | 推流url对应的服务器连接失败 |
UCloudCamera_DisConnected = 25 | 服务器连接异常断开 |
UCloudCamera_Permission = 998 | 摄像头权限 |
UCloudCamera_Micphone = 999 | 麦克风权限 |
- 手电筒状态返回
状态枚举 | 描述 |
---|---|
UCloudCameraCode_Off | 关闭 |
UCloudCameraCode_On | 打开 |
UCloudCameraCode_Auto | 自动 |
- 推流码率设置爱
状态枚举 | 描述 |
---|---|
UCloudVideoBitrateLow | 400 |
UCloudVideoBitrateNormal | 600 |
UCloudVideoBitrateMedium | 800 |
UCloudVideoBitrateHigh | 1000 |
当你要深入理解 SDK 的一些参数及有定制化需求时,可以从高级功能部分中查询阅读。
width、height
默认为竖屏方式设置,宽高为640*360,视频宽高比按照16:9进行设置,iPhone4、4s因设置采集宽高比是4:3,如需兼容低设备请酌情设置
fps
帧率,即每一秒所包含的视频帧数,默认15,有效范围[1~30], 超出会提示参数错误;
bitrate
音频和视频总比特率,默认UCloudVideoBitrateMedium = 800,音频码率为128kps,可自行设置,该属性的单位为kbps(kilo bits per second),视频码率高则画面较清晰,低则画面较模糊,同时数据亦是如此,码率高数据大,码率低数据小;
captureDevicePos
摄像头位置,默认打开前置摄像头;
muted
是否开启静音,默认NO
backgroudMusicOn
是否开启背景音乐,默认NO
videoOrientation
视频推流方向,只在采集初始化时设置有效,默认UIDeviceOrientationPortrait;
streamMirrorFrontFacing
推流镜像,只对前置有效
reconnectInterval
重推流间隔,默认5秒
reconnectCount
重推流次数,默认3次,如果需要不做重推操作,可将此参数设置为0;重推流间隔和次数可根据app场景自行进行设置调整;
我们提供了两种不同美颜滤镜算法(UCloudGPUImageBeautyFilter和UCloudGPUImageBeautyFilter2)及各种基于GPUImageView的滤镜,用户可以根据自行情况进行选择使用,或者自行编写基于GPUImage的算法;
__block UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size.width, 44)];
label.textAlignment = NSTextAlignmentCenter;
label.text = @"我是水印";
UIImageView *imgV = [[UIImageView alloc]initWithFrame:CGRectMake(size.width/2 -20, _changeBtn.frame.origin.y + 40, 60, 60)];
imgV.image = [UIImage imageNamed:@"ucloud_logo"];
imgV.alpha = 0.5;
UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
subView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
subView.backgroundColor = [UIColor clearColor];
[subView addSubview:label];
[subView addSubview:imgV];
self.waterView = subView;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[[CameraServer server] setWatermarkView:subView Block:^{
label.text = [NSString stringWithFormat:@"UCloud:%@", [dateFormatter stringFromDate: [NSDate date]]];
}];
[[CameraServer server] openFilter]
[[CameraServer server] closeFilter]
特效滤镜使用了demo中的(res)资源文件,使用方方法:
UCloudGPUImagePhotoFilter *photoFilter = [[UCloudGPUImagePhotoFilter alloc]initWithImage:[UIImage imageNamed:@"2_sweety"]];
然后加入滤镜组中即可使用。
滤镜效果 | 资源 |
---|---|
健康 | 1_health.png |
甜美 | 2_sweety.png |
复古 | 3_sepia.png |
蓝调 | 4_blue.png |
怀旧 | 5_amatorka.png |
通话 | 6_fairy_tale.png |
夏日清新 | s_1.png至s_12.png |
- 日志等级
状态枚举 | 描述 |
---|---|
UCDLiveLogLevelOff | off |
UCDLiveLogLevelError | error |
UCDLiveLogLevelWarning | warn |
UCDLiveLogLevelInfo | info |
UCDLiveLogLevelDebug | debug |
UCDLiveLogLevelVerbose | verbose |
- enableLogFile: 是否开启日志文件,默认开启
- logFiles: 所有日志文件名
- logsDirectory: 日志文件路径,默认Documents/Logs/UCloud/ULive/
- lastLogFilePath: 最近的日志文件路径
- lastLogFileName: 最近的日志文件名
- logFileSize: 每个日志文件的大小,每个日志文件如若达到该大小将会进行一次压缩保存,减少沙盒使用量,默认1M
- logFilesMaxSize: 日志文件夹大小,超过会清理日志,默认20M
SDK v1.8.1版本加入
nosieSuppressLevel
SDK支持对采集的声音进行降噪处理, 所谓降噪是指是对麦克风采集的声音进行处理, 将采集到的背景噪声过滤掉, 使主播的声音更清晰。
支持4档不同强度的噪声抑制,可以根据具体场景选择对应等级:
- 在室内安静条件下可以选择比较温和的方式
- 在嘈杂一点的环境中选择比较高效的方式.
默认UCloudAudioNoiseSuppressMedium;
状态枚举 | 描述 |
---|---|
UCloudAudioNoiseSuppressOff | 关闭 |
UCloudAudioNoiseSuppressLow | 温和 |
UCloudAudioNoiseSuppressMedium | 中等 |
UCloudAudioNoiseSuppressHigh | 高效 |
UCloudAudioNoiseSuppressVeryHigh | 激进 |
注:设置UCloudAudioNoiseSuppressOff为关闭噪声抑制