iOS摄像头推流(2)

1. 纯音频推流

如果您的直播场景是纯音频直播,不需要视频画面,那么您可以不执行 第4步 中的操作,取而代之的是开启 TXLivePushConfig 中的enablePureAudioPush配置。

[](javascript: void 0;)

//通过修改 enablePureAudioPush 开关,开启纯音频推流
TXLivePushConfig *_config = [[TXLivePushConfig alloc] init];
_config.enablePureAudioPush = YES;   // YES 为启动纯音频推流,只有在调用 startPush 前设置才会生效。

TXLivePush *_pusher = [[TXLivePush alloc] initWithConfig: _config]; 
NSString* rtmpUrl = @"rtmp://test.com/live/xxxxxx";    
[_pusher startPush:rtmpUrl];

如果您启动纯音频推流,但是 rtmp、flv 、hls 格式的播放地址拉不到流,那是因为线路配置问题,请 提工单 联系我们帮忙修改配置。

2. 设定画面清晰度

调用 TXLivePush 中的setVideoQuality接口,可以设定观众端的画面清晰度。之所以说是观众端的画面清晰度,是因为主播看到的视频画面是未经编码压缩过的高清原画,不受设置的影响。而setVideoQuality通过设定视频编码器的编码质量,使观众端感受到画质的差异。详情请参考 设定画面质量。

3. 美颜美白和红润特效

调用 TXLivePush 中的setBeautyStyle接口可以设置美颜效果,SDK 中提供了两种磨皮算法(beautyStyle):

美颜风格

效果说明

BEAUTY_STYLE_SMOOTH

光滑风格,算法更加注重皮肤的光滑程度,适合秀场直播类场景下使用。

BEAUTY_STYLE_NATUREiOS开发交流技术群:563513413,不管你是大牛还是小白都欢迎入驻

自然风格,算法更加注重保留皮肤细节,适合对真实性要求更高的主播。

[](javascript: void 0;)

//     beautyStyle     : 美颜算法,目前支持 自然 和 光滑 两种。
//     beautyLevel     : 磨皮级别,取值范围 0 - 9; 0 表示关闭 1 - 9值越大 效果越明显。
//     whitenessLevel  : 美白级别,取值范围 0 - 9; 0 表示关闭 1 - 9值越大 效果越明显。
//     ruddinessLevel  : 红润级别,取值范围 0 - 9; 0 表示关闭 1 - 9值越大 效果越明显。
(void)setBeautyStyle:(int)beautyStyle beautyLevel:(float)beautyLevel 
          whitenessLevel:(float)whitenessLevel ruddinessLevel:(float)ruddinessLevel;

4. 色彩滤镜效果

调用 TXLivePush 中的setFilter接口可以设置色彩滤镜效果。所谓色彩滤镜,是指一种将整个画面色调进行区域性调整的技术,例如将画面中的淡黄色区域淡化实现肤色亮白的效果,或者将整个画面的色彩调暖让视频的效果更加清新和温和。

调用 TXLivePush 中的setSpecialRatio接口可以设定滤镜的浓度,设置的浓度越高,滤镜效果也就越明显。

从手机 QQ 和 Now 直播的经验来看,单纯通过setBeautyStyle调整磨皮效果是不够的,只有将美颜效果和setFilter配合使用才能达到更加多变的美颜效果。所以,我们的设计师团队提供了17种默认的色彩滤镜,并将其默认打包在 Demo 中供您使用。

[](javascript: void 0;)

NSString * path = [[NSBundle mainBundle] pathForResource:@"FilterResource" ofType:@"bundle"];
path = [path stringByAppendingPathComponent:lookupFileName];

UIImage *image = [UIImage imageWithContentsOfFile:path];
[_pusher setFilter:image];
[_pusher setSpecialRatio:0.5f];

5. 控制摄像头

TXLivePush 提供了一组 API 用户控制摄像头的行为:

API 函数

功能说明

备注说明

switchCamera

切换前后摄像头

Mac 平台对应的函数为 selectCamera

toggleTorch

打开或关闭闪光灯

仅在当前是后置摄像头时有效。

setZoom

调整摄像头的焦距

焦距大小,取值范围:1 - 5,默认值建议设置为1即可。

setFocusPosition

设置手动对焦位置

需要将 TXLivePushConfig 中的touchFocus选项设置为 YES 后才能使用。