LiteAVSDK
腾讯云音视频 SDK ,服务于数万家企业客户的高可用组件,致力于最大限度地节省您的研发成本。
TXLivePush

详细描述

直播推流类


结构体说明

◆ TXLivePush

class TXLivePush

SDK 基础函数

TXLivePushConfigconfig
 
id< TXLivePushListenerdelegate
 
(id) - initWithConfig:
 

推流基础接口

NSString * rtmpURL
 
(int) - startPreview:
 
(void) - stopPreview
 
(int) - startPush:
 
(void) - stopPush
 
(void) - pausePush
 
(void) - resumePush
 
(bool) - isPublishing
 

视频相关接口

BOOL frontCamera
 
(void) - setVideoQuality:adjustBitrate:adjustResolution:
 
(int) - switchCamera
 
(void) - selectCamera:
 
(void) - setMirror:
 
(void) - setRenderRotation:
 
(BOOL) - toggleTorch:
 
(void) - setZoom:
 
(void) - setFocusPosition:
 

美颜相关接口

(TXBeautyManager *) - getBeautyManager
 

音频相关接口

(void) - setMute:
 
(TXAudioEffectManager *) - getAudioEffectManager
 
(void) - setAudioVolumeEvaluationListener:
 
(void) - enableAudioVolumeEvaluation:
 

本地录制接口

id< TXLiveRecordListenerrecordDelegate
 
(int) - startRecord:
 
(int) - stopRecord
 
(void) - snapshot:
 

自定义采集和处理

id< TXVideoCustomProcessDelegate > videoProcessDelegate
 
id< TXAudioCustomProcessDelegate > audioProcessDelegate
 
(void) - sendVideoSampleBuffer:
 
(void) - sendCustomPCMData:len:
 
(void) - sendAudioSampleBuffer:withType:
 
(void) - setSendAudioSampleBufferMuted:
 

更多实用接口

(BOOL) - sendMessageEx:
 
(void) - sendMessage:
 
(void) - showVideoDebugLog:
 
(void) - setLogViewMargin:
 
(void) - setEnableClockOverlay:
 
(BOOL) - enableClockOverlay
 

屏幕分享相关接口函数

(void) - startScreenCaptureByReplaykit:
 
(int) - stopScreenCapture
 
(int) - pauseScreenCapture
 
(int) - resumeScreenCapture
 

待废弃接口

(void) - setBeautyStyle:beautyLevel:whitenessLevel:ruddinessLevel:
 
(void) - setFilter:
 
(void) - setSpecialRatio:
 
(void) - setEyeScaleLevel:
 
(void) - setFaceScaleLevel:
 
(void) - setFaceVLevel:
 
(void) - setChinLevel:
 
(void) - setFaceShortLevel:
 
(void) - setNoseSlimLevel:
 
(void) - setGreenScreenFile:
 
(void) - selectMotionTmpl:inDir:
 
(void) - setMotionMute:
 
(BOOL) - playBGM:
 
(BOOL) - playBGM:withBeginNotify:withProgressNotify:andCompleteNotify:
 
(BOOL) - stopBGM
 
(BOOL) - pauseBGM
 
(BOOL) - resumeBGM
 
(int) - getMusicDuration:
 
(BOOL) - setBGMVolume:
 
(BOOL) - setMicVolume:
 
(BOOL) - setBGMPitch:
 
(BOOL) - setReverbType:
 
(BOOL) - setVoiceChangerType:
 
(BOOL) - setBGMPosition:
 
(void) - callExperimentalAPI:
 

函数文档

◆ callExperimentalAPI:()

- (void) callExperimentalAPI: (NSString *)  jsonStr

调用实验性 API 接口

注意
该接口用于调用一些实验性功能
参数
jsonStr接口及参数描述的 JSON 字符串

◆ enableAudioVolumeEvaluation:()

- (void) enableAudioVolumeEvaluation: (NSUInteger)  interval

启用麦克风采集音量大小评估

开启后会在 volumeEvaluationListener 中获取到 SDK 对麦克风采集音量大小值的评估。

参数
interval决定了 volumeEvaluationListener 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms

◆ enableClockOverlay()

- (BOOL) enableClockOverlay

获取当前推流画面是否有覆盖时钟

◆ getAudioEffectManager()

- (TXAudioEffectManager *) getAudioEffectManager

获取音效管理类 TXAudioEffectManager, 用于管理BGM, 短音效和人声特效

◆ getBeautyManager()

- (TXBeautyManager *) getBeautyManager

获取美颜管理对象

通过美颜管理,您可以使用以下功能:

  • 设置"美颜风格"、“美白”、“红润”、“大眼”、“瘦脸”、“V脸”、“下巴”、“短脸”、“小鼻”、“亮眼”、“白牙”、“祛眼袋”、“祛皱纹”、“祛法令纹”等美容效果。
  • 调整“发际线”、“眼间距”、“眼角”、“嘴形”、“鼻翼”、“鼻子位置”、“嘴唇厚度”、“脸型”
  • 设置人脸挂件(素材)等动态效果
  • 添加美妆
  • 进行手势识别

◆ getMusicDuration:()

- (int) getMusicDuration: (NSString *)  path

获取背景音乐文件的总时长,单位是毫秒

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager getMusicDurationInMS 接口
参数
path音乐文件路径,如果 path 为空,那么返回当前正在播放的背景音乐的时长。

◆ initWithConfig:()

- (id) initWithConfig: (TXLivePushConfig *)  config

创建 TXLivePusher 示例

参数
configTXLivePushConfig 推流配置项,见 “TXLivePushConfig.h” 文件中的详细定义

◆ isPublishing()

- (bool) isPublishing

查询是否正在推流

返回
YES:推流中;NO:没有在推流。

◆ pauseBGM()

- (BOOL) pauseBGM

暂停播放背景音乐

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager pausePlayMusic 接口

◆ pausePush()

- (void) pausePush

暂停摄像头采集并进入垫片推流状态

SDK 会暂时停止摄像头采集,并使用 TXLivePushConfig.pauseImg 中指定的图片作为替代图像进行推流,也就是所谓的“垫片”。 这项功能常用于 App 被切到后台运行的场景,尤其是在 iOS 系统中,当 App 切到后台以后,操作系统不会再允许该 App 继续使用摄像头。 此时就可以通过调用 pausePush() 进入垫片状态。

对于绝大多数推流服务器而言,如果超过一定时间不推视频数据,服务器会断开当前的推流链接。

在 TXLivePushConfig 您可以指定:

  • pauseImg 设置后台推流的默认图片,不设置为默认黑色背景。
  • pauseFps 设置后台推流帧率,最小值为5,最大值为20,默认10。
  • pauseTime 设置后台推流持续时长,单位秒,默认300秒。
注意
请注意调用顺序:startPush => ( pausePush => resumePush ) => stopPush(),错误的调用顺序会导致 SDK 表现异常。

◆ pauseScreenCapture()

- (int) pauseScreenCapture

暂停屏幕分享

返回
0:成功;<0:失败

◆ playBGM:()

- (BOOL) playBGM: (NSString *)  path

播放背景音乐

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager startPlayMusic 接口 SDK 会将背景音乐和麦克风采集的声音进行混合并一起推送到云端。
参数
path本地音乐文件路径
返回
YES:成功;NO:失败。

◆ playBGM:withBeginNotify:withProgressNotify:andCompleteNotify:()

- (BOOL) playBGM: (NSString *)  path
withBeginNotify: (void(^)(NSInteger errCode))  beginNotify
withProgressNotify: (void(^)(NSInteger progressMS, NSInteger durationMS))  progressNotify
andCompleteNotify: (void(^)(NSInteger errCode))  completeNotify 

播放背景音乐(高级版本)

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager startPlayMusic 接口
参数
path本地音乐文件路径
beginNotify播放开始的回调
progressNotify播放进度回调
completeNotify播放完毕回调
返回
YES:成功;NO:失败。

◆ resumeBGM()

- (BOOL) resumeBGM

继续播放背景音乐

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager resumePlayMusic 接口

◆ resumePush()

- (void) resumePush

恢复摄像头采集并结束垫片推流状态

◆ resumeScreenCapture()

- (int) resumeScreenCapture

恢复屏幕分享

返回
0:成功;<0:失败

◆ selectCamera:()

- (void) selectCamera: (AVCaptureDevice *)  camera

选择摄像头(macOS)

◆ selectMotionTmpl:inDir:()

- (void) selectMotionTmpl: (NSString *)  tmplName
inDir: (NSString *)  TX_DEPRECAETD_BEAUTY_API 

选择使用哪一款 AI 动效挂件(企业版有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ sendAudioSampleBuffer:withType:()

- (void) sendAudioSampleBuffer: (CMSampleBufferRef)  sampleBuffer
withType: (RPSampleBufferType)  sampleBufferType 

自定义音频采集,向 SDK 发送自己采集的音频数据。

相比于 sendCustomPCMData,sendAudioSampleBuffer 主要用于 ReplayKit 录屏推流的场景。 要开启自定义音频采集,需要完成如下两个步骤:

  1. 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_AUDIO_CAPTURE 选项,代表开启自定义音频采集。
  2. 设定音频采样率:将 TXLivePushConfig 中的 audioSampleRate 属性设置为您期望的音频采样率,audioChannels 设置为期望的声道数,默认值:1(单声道)。

当使用 ReplayKit 做录屏推流时,iOS 的 ReplayKit 接口会回调两种类型的声音数据:

  • RPSampleBufferTypeAudioApp,也就是要录制的 App 的声音数据。
  • RPSampleBufferTypeAudioMic,也就是要录制的麦克风的声音数据。

当您通过 sendAudioSampleBuffer 向 SDK 调用各种类型的声音数据时,SDK 内部会进行混流,否则只会发送一路的声音数据。

参数
sampleBuffer采集到的声音 sampleBuffer
sampleBufferTypeRPSampleBufferTypeAudioApp:ReplayKit 采集到的 App 声音;RPSampleBufferTypeAudioMic:ReplayKit 采集到的麦克风声音。

◆ sendCustomPCMData:len:()

- (void) sendCustomPCMData: (unsigned char *)  data
len: (unsigned int)  len 

自定义音频采集,向 SDK 发送自己采集的音频 PCM 数据。

在自定义音频采集模式下,SDK 不再继续从麦克风采集声音,只保留编码和发送能力,您需要定时地发送自己采集的声音数据(PCM 格式) 要开启自定义音频采集,需要完成如下两个步骤:

  1. 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_AUDIO_CAPTURE 选项,代表开启自定义音频采集。
  2. 设定音频采样率:将 TXLivePushConfig 中的 audioSampleRate 属性设置为您期望的音频采样率,audioChannels 设置为期望的声道数,默认值:1(单声道)。
注意
SDK 对每次传入的 PCM buffer 大小有严格要求,每一个采样点要求是16位宽。 如果是单声道,请保证传入的 PCM 长度为2048;如果是双声道,请保证传入的 PCM 长度为4096。
参数
data要发送的 PCM buffer
len数据长度

◆ sendMessage:()

- (void) sendMessage: (NSData *)  data

◆ sendMessageEx:()

- (BOOL) sendMessageEx: (NSData *)  data

发送 SEI 消息,播放端(TXLivePlayer)通过 onPlayEvent(EVT_PLAY_GET_MESSAGE)来接收该消息。

本接口是将数据直接塞入视频数据头中,因此不能太大(几个字节比较合适),一般常用于塞入自定义时间戳等信息。

注意
- sendMessage 已经不推荐使用,会导致 H5 播放器产生兼容性问题,请使用 sendMessageEx。
  • 若您使用过 sendMessage,不推荐立刻升级到 sendMessageEx。
  • sendMessageEx 发送消息给旧版本的5.0 及以前的 SDK 版本时,消息会无法正确解析,但播放不受影响。

◆ sendVideoSampleBuffer:()

- (void) sendVideoSampleBuffer: (CMSampleBufferRef)  sampleBuffer

自定义视频采集,向 SDK 发送自己采集的视频数据。

在自定义视频采集模式下,SDK 不再继续从摄像头采集图像,只保留编码和发送能力,您需要定时地发送自己采集的 SampleBuffer。 要开启自定义视频采集,需要完成如下两个步骤:

  1. 开启自定义采集:给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_CAPTURE 选项,代表开启自定义视频采集。
  2. 设定视频分辨率:将 TXLivePushConfig 中的 sampleBufferSize 属性设置为您期望的分辨率。 如果期望编码分辨率跟采集分辨率一致,可以不设置 sampleBufferSize 属性,而是将 autoSampleBufferSize 设置为 YES。
注意
1. 开启自定义视频采集后,即无需再调用 startPreview 来开启摄像头采集。
  1. SDK 内部有简单的帧率控制,如果发送太快时 SDK 会自动丢弃多余的帧;如果超时不发送,SDK 会不断地重复发送的最后一帧。
参数
sampleBuffer向 SDK 发送的 SampleBuffer

◆ setAudioVolumeEvaluationListener:()

- (void) setAudioVolumeEvaluationListener: (void(^)(NSInteger volume))  volumeEvaluationListener

设置麦克风采集音量大小回调接口

参数
volumeEvaluationListener麦克风采集音量大小回调接口,音量取值范围0 - 100

◆ setBeautyStyle:beautyLevel:whitenessLevel:ruddinessLevel:()

- (void) setBeautyStyle: (TX_Enum_Type_BeautyStyle)  beautyStyle
beautyLevel: (float)  beautyLevel
whitenessLevel: (float)  whitenessLevel
ruddinessLevel: (float)  TX_DEPRECAETD_BEAUTY_API 

设置美颜级别和美白级别

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ setBGMPitch:()

- (BOOL) setBGMPitch: (float)  pitch

调整背景音乐的音调高低

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPitch 接口
参数
pitch音调,默认值是0.0f,范围是-1 - 1之间的浮点数;
返回
YES:成功;NO:失败。

◆ setBGMPosition:()

- (BOOL) setBGMPosition: (NSInteger)  position

指定背景音乐的播放位置

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager seekMusicToPosInMS 接口
注意
请尽量避免频繁地调用该接口,因为该接口可能会再次读写 BGM 文件,耗时稍高。 例如:当配合进度条使用时,请在进度条拖动完毕的回调中调用,而避免在拖动过程中实时调用。
参数
position背景音乐的播放位置,单位ms。
返回
结果是否成功,YES:成功;NO:失败。

◆ setBGMVolume:()

- (BOOL) setBGMVolume: (float)  volume

设置混音时背景音乐的音量大小,仅在播放背景音乐混音时使用。

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicVolume 接口
参数
volume音量大小,1为正常音量,范围是0 - 1之间的浮点数。
返回
YES:成功;NO:失败。

◆ setChinLevel:()

- (void) setChinLevel: (float)  TX_DEPRECAETD_BEAUTY_API

设置下巴拉伸或收缩(企业版有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ setEnableClockOverlay:()

- (void) setEnableClockOverlay: (BOOL)  enabled

设置推流是否覆盖时钟

开始后可以在 TXLivePlayer 中的仪表盘显示画面延迟时间

注意
需要双方的时间相同才能获取准确的延迟时间

◆ setEyeScaleLevel:()

- (void) setEyeScaleLevel: (float)  TX_DEPRECAETD_BEAUTY_API

设置大眼级别(企业版有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ setFaceScaleLevel:()

- (void) setFaceScaleLevel: (float)  TX_DEPRECAETD_BEAUTY_API

设置瘦脸级别(企业版有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ setFaceShortLevel:()

- (void) setFaceShortLevel: (float)  TX_DEPRECAETD_BEAUTY_API

设置短脸级别(企业版有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ setFaceVLevel:()

- (void) setFaceVLevel: (float)  TX_DEPRECAETD_BEAUTY_API

设置 V 脸级别(企业版有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ setFilter:()

- (void) setFilter: (TXImage *)  TX_DEPRECAETD_BEAUTY_API

设置指定素材滤镜特效

弃用:
v7.2 版本弃用,请使用 TXBeautyManager 设置滤镜

◆ setFocusPosition:()

- (void) setFocusPosition: (CGPoint)  touchPoint

设置手动对焦区域

SDK 默认使用摄像头自动对焦功能,您也可以通过 TXLivePushConfig 中的 touchFocus 选项关闭自动对焦,改用手动对焦。 改用手动对焦之后,需要由主播自己点击摄像头预览画面上的某个区域,来手动指导摄像头对焦。

注意
早期 SDK 版本仅仅提供了手动和自动对焦的选择开关,并不支持设置对焦位置,3.0 版本以后,手动对焦的接口才开放出来。

◆ setGreenScreenFile:()

- (void) setGreenScreenFile: (NSURL *)  TX_DEPRECAETD_BEAUTY_API

设置绿幕背景视频(企业版有效,其它版本设置此参数无效)

弃用:
v7.2 版本弃用,请使用 TXBeautyManager 设置绿幕背景视频

◆ setLogViewMargin:()

- (void) setLogViewMargin: (TXEdgeInsets margin

设置调试浮层在视频 view 上的位置。

◆ setMicVolume:()

- (BOOL) setMicVolume: (float)  volume

设置混音时麦克风音量大小,仅在播放背景音乐混音时使用。

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setVoiceVolume 接口
参数
volume音量大小,1为正常音量,范围是0 - 1之间的浮点数。
返回
YES:成功;NO:失败。

◆ setMirror:()

- (void) setMirror: (BOOL)  isMirror

设置视频镜像效果

由于前置摄像头采集的画面是取自手机的观察视角,如果将采集到的画面直接展示给观众,是完全没有问题的。 但如果将采集到的画面也直接显示给主播,则会跟主播照镜子时的体验完全相反,会让主播感觉到很奇怪。 因此,SDK 会默认开启本地摄像头预览画面的镜像效果,让主播直播时跟照镜子时保持一个体验效果。

setMirror 所影响的则是观众端看到的视频效果,如果想要保持观众端看到的效果跟主播端保持一致,需要开启镜像; 如果想要让观众端看到正常的未经处理过的画面(比如主播弹吉他的时候有类似需求),则可以关闭镜像。

参数
isMirrorYES:播放端看到的是镜像画面;NO:播放端看到的是非镜像画面。

◆ setMotionMute:()

- (void) setMotionMute: (BOOL)  TX_DEPRECAETD_BEAUTY_API

设置动效静音(企业版有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ setMute:()

- (void) setMute: (BOOL)  bEnable

开启静音

开启静音后,SDK 并不会继续采集麦克风的声音,但是会用非常低(5kbps 左右)的码率推送伪静音数据, 这样做的目的是为了兼容 H5 上的 video 标签,并让录制出来的 MP4 文件有更好的兼容性。

param bEnable 是否开启静音。

◆ setNoseSlimLevel:()

- (void) setNoseSlimLevel: (float)  TX_DEPRECAETD_BEAUTY_API

设置瘦鼻级别(企业版有效,其它版本设置此参数无效)

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能

◆ setRenderRotation:()

- (void) setRenderRotation: (int)  rotation

设置本地摄像头预览画面的旋转方向

该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。 如果希望改变观众端看到的视频画面的方向,比如原来是540x960,希望变成960x540,则可以通过设置 TXLivePushConfig 中的 homeOrientation 来实现。

// 竖屏推流(HOME 键在下)
_config.homeOrientation = HOME_ORIENTATION_DOWN;
[_txLivePublisher setConfig:_config];
[_txLivePublisher setRenderRotation:0];
// 横屏推流(HOME 键在右)
_config.homeOrientation = HOME_ORIENTATION_RIGHT;
[_txLivePublisher setConfig:_config];
[_txLivePublisher setRenderRotation:90];
参数
rotation取值为0 ,90,180,270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。

◆ setReverbType:()

- (BOOL) setReverbType: (TXReverbType)  reverbType

设置混响效果

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setVoiceReverbType 接口
参数
reverbType混响类型,详见 “TXLiveSDKTypeDef.h” 中的 TXReverbType 定义。
返回
YES:成功;NO:失败。

◆ setSendAudioSampleBufferMuted:()

- (void) setSendAudioSampleBufferMuted: (BOOL)  muted

要求 SDK 发送静音数据

该函数配合 sendAudioSampleBuffer 使用,在 InApp 类型录制切后台场合时需要调用,系统屏幕录制不需要。

参数
mutedYES;静音;NO;关闭静音。

◆ setSpecialRatio:()

- (void) setSpecialRatio: (float)  TX_DEPRECAETD_BEAUTY_API

设置滤镜浓度

弃用:
v7.2 版本弃用,请使用 TXBeautyManager 设置滤镜

◆ setVideoQuality:adjustBitrate:adjustResolution:()

- (void) setVideoQuality: (TX_Enum_Type_VideoQuality)  quality
adjustBitrate: (BOOL)  adjustBitrate
adjustResolution: (BOOL)  adjustResolution 

设置视频编码质量

推荐设置:秀场直播 quality:HIGH_DEFINITION;adjustBitrate:NO;adjustResolution:NO。 参考文档:设定清晰度

参数
quality画质类型(标清,高清,超高清)
adjustBitrate动态码率开关
adjustResolution动态切分辨率开关
注意
adjustResolution 早期被引入是为了让 TXLivePusher 能够满足视频通话这一封闭场景下的一些需求,现已不推荐使用。 如果您有视频通话的需求,可以使用我们专门为视频通话打造的 TRTC 服务。 由于目前很多 H5 播放器不支持分辨率动态变化,所以开启分辨率自适应以后,会导致 H5 播放端和录制文件的很多兼容问题。

◆ setVoiceChangerType:()

- (BOOL) setVoiceChangerType: (TXVoiceChangerType)  voiceChangerType

设置变声类型

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setVoiceChangerType 接口
参数
voiceChangerType混响类型,详见 “TXLiveSDKTypeDef.h” 中的 voiceChangerType 定义。
返回
YES:成功;NO:失败。

◆ setZoom:()

- (void) setZoom: (CGFloat)  distance

调整摄像头的焦距

参数
distance焦距大小,取值范围1 - 5,默认值建议设置为1即可。
注意
当 distance 为1的时候为最远视角(正常镜头),当为5的时候为最近视角(放大镜头),最大值不要超过5,超过5后画面会模糊不清。

◆ showVideoDebugLog:()

- (void) showVideoDebugLog: (BOOL)  isShow

打开包含视频状态信息的调试浮层,该浮层一般用于 SDK 调试期间,外发版本请不要打开。

◆ snapshot:()

- (void) snapshot: (void(^)(TXImage *))  snapshotCompletionBlock

推流过程中本地截图

参数
snapshotCompletionBlock截图完成的回调函数

◆ startPreview:()

- (int) startPreview: (TXView *)  view

启动摄像头预览

启动预览后并不会立刻开始 RTMP 推流,需要调用 startPush() 才能真正开始推流。

参数
view承载视频画面的控件

◆ startPush:()

- (int) startPush: (NSString *)  rtmpURL

启动 RTMP 推流

针对腾讯云的推流地址,会采用 QUIC 协议进行加速,配合改进后的 BBR2 带宽测算方案,可以最大限度的利用主播的上行带宽,降低直播卡顿率。

参数
rtmpURL推流地址,参考文档:获取推流地址
注意
-5 返回码代表 license 校验失败,TXLivePusher 需要 license 校验通过才能工作。
返回
0: 启动成功;-1: 启动失败;-5:license 校验失败。

◆ startRecord:()

- (int) startRecord: (NSString *)  videoPath

开始录制短视频

注意
1. 只有启动推流后才能开始录制,非推流状态下启动录制无效。
  1. 出于安装包体积的考虑,仅专业版和企业版两个版本的 LiteAVSDK 支持该功能,直播精简版仅定义了接口但并未实现。
  2. 录制过程中请勿动态切换分辨率和软硬编,会有很大概率导致生成的视频异常。
参数
videoPath视频录制后存储路径
返回
0:成功;-1:videoPath 为空;-2:上次录制尚未结束,请先调用 stopRecord;-3:推流尚未开始。

◆ startScreenCaptureByReplaykit:()

- (void) startScreenCaptureByReplaykit: (NSString *)  appGroup

开始全系统的屏幕分享(该接口支持 iOS 11.0 及以上的 iPhone 和 iPad)

该接口支持共享整个 iOS 系统的屏幕,可以实现类似腾讯会议的全系统级的屏幕分享。

参数
appGroup主 App 与 Broadcast 共享的 Application Group Identifier,可以指定为 nil。

◆ stopBGM()

- (BOOL) stopBGM

停止播放背景音乐

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager stopPlayMusic 接口

◆ stopPreview()

- (void) stopPreview

停止摄像头预览

◆ stopPush()

- (void) stopPush

停止 RTMP 推流

◆ stopRecord()

- (int) stopRecord

结束录制短视频,当停止推流后,如果视频还在录制中,SDK 内部会自动结束录制。

返回
0:成功; -1:不存在录制任务。

◆ stopScreenCapture()

- (int) stopScreenCapture

停止屏幕采集

返回
0:成功;<0:失败

◆ switchCamera()

- (int) switchCamera

切换前后摄像头(iOS)

◆ toggleTorch:()

- (BOOL) toggleTorch: (BOOL)  bEnable

打开后置摄像头旁边的闪关灯

此操作对于前置摄像头是无效的,因为绝大多数手机都没有给前置摄像头配置闪光灯。

参数
bEnableYES:打开;NO:关闭。
返回
YES:打开成功;NO:打开失败。

属性说明

◆ audioProcessDelegate

- (id<TXAudioCustomProcessDelegate>) audioProcessDelegate
readwritenonatomicweak

自定义音频处理回调

自定义音频采集和自定义音频处理不能同时开启,与自定义音频采集不同,自定义音频处理依然是由 SDK 采集麦克风的声音, 但 SDK 会通过 TXAudioCustomProcessDelegate(见“TXAudioCustomProcessDelegate.h”)回调将数据回调给您的 App 进行二次加工。

如果要开启自定义音频处理,需要给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_AUDIO_PREPROCESS 选项。

注意
出于性能和稳定性考虑,一般不建议开启此特性。

◆ config

- (TXLivePushConfig*) config
readwritenonatomiccopy

设置 TXLivePushConfig 推流配置项,见 “TXLivePushConfig.h” 文件中的详细定义

◆ delegate

- (id<TXLivePushListener>) delegate
readwritenonatomicweak

设置推流回调接口,见“TXLivePushListener.h” 文件中的详细定义

◆ frontCamera

- (BOOL) frontCamera
readnonatomicassign

查询当前是否为前置摄像头

◆ recordDelegate

- (id<TXLiveRecordListener>) recordDelegate
readwritenonatomicweak

录制回调接口,详见 "TXLiveRecordTypeDef.h" 中的 TXLiveRecordListener 定义。

◆ rtmpURL

- (NSString*) rtmpURL
readnonatomicassign

获取当前推流的 RTMP 地址

◆ videoProcessDelegate

- (id<TXVideoCustomProcessDelegate>) videoProcessDelegate
readwritenonatomicweak

自定义视频处理回调

自定义视频采集和自定义视频处理不能同时开启,与自定义视频采集不同,自定义视频处理依然是由 SDK 采集摄像头的画面, 但 SDK 会通过 TXVideoCustomProcessDelegate(见“TXVideoCustomProcessDelegate.h”)回调将数据回调给您的 App 进行二次加工。

如果要开启自定义视频处理,需要给 TXLivePushConfig 中的 customModeType 属性增加 CUSTOM_MODE_VIDEO_PREPROCESS 选项。

注意
出于性能和稳定性考虑,一般不建议开启此特性。