TXRTMPAPI.h 5.62 KB

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "TXLivePlayListener.h"
#import "TXLivePushListener.h"

#pragma TXRtmpAPI
@interface TXRtmpApi : NSObject
/*! @brief 开始播放RTMP流
 *
 * @param url  流地址
 * @param playType 播放类型
 * @return
 */
+(void) startPlay:(NSString*)url type:(int)playType;

/*! @brief 停止播放RTMP流
 *
 * @return
 */
+(void) stopPlayRtmp;

/*! @brief 开始RTMP推流
 *
 * @param url  RTMP推流地址
 * @return
 */
+(void) startPublishRtmp:(NSString*)url;

/*! @brief 停止RTMP推流
 *
 * @return
 */
+(void) stopPublishRtmp;


/*! @brief 设置视频编码器参数
 *
 * @param width 输入的视频宽度,即采集到的视频width,如 640
 * @param Height 输入的视频高度,即采集到的视频height,如 480
 * @param Angle 输出视频旋转角度
 * @return
 */
+(void) setVideoEncoderSize:(int)width height:(int)height angle:(int)angle;

/*! @brief 设置推流码率档位
 * @param bitrateType 分三个档位,具体参照VideoQuality定义
 * @return
 */
+(void) setVideoEncodeBitrateMin:(int)minBitrate max:(int)maxBitrate;

/* setAudioSampleRate 设置音频采样参数
 * sample:  SampleRate,as:8000,44100
 * channel: channelsPerFrame
 * bit:     BitsPerChannel
 * 返回: 0 = OK
 */
+(int) setAudioSampleRate:(int)sample channels:(int)channel bits:(int)bit;

/* setAudioDenoiseEnable 开启/关闭背景音降噪
 * bDenoiseEnable:  是否开启背景音降噪,目前支持采样率(8000,32000)之间降噪
 * 返回:
 */
+(void) setAudioDenoiseEnable:(bool)bDenoiseEnable;

/*! @brief 发送语音数据
 *
 * @param data pcm格式音频数据,SDK内部会转成AAC
 * @param len 数据长度
 * @return
 */
+(void) sendAudioWithPCM:(unsigned char*)data len:(unsigned int)len;

/*! @brief 发送语音数据
 *
 * @param data aac格式音频数据
 * @param len 数据长度
 * @return
 */
+(unsigned int) sendAudioWithAAC:(unsigned char*)data len:(unsigned int)len;

/*! @brief 发送视频数据
 *
 * @param pYUV420Buff YUV420数据
 * @param frameAngle 旋转方向
 * @param width 视频width
 * @param height 视频height
 * @param dataLen YUV420数据size
 * @return
 */
+(void) sendVideoWithYUV:(unsigned char *)pYUV420Buff width:(int)width height:(int)height dataLen:(unsigned int)dataLen;

/*! @brief 切换前后摄像头
 *
 * @param bFront 切换到前(后)摄像头
 * @return
 *
 * 当发生摄像头切换时,需要设置SDK相应的参数
 */
+(void) switchCamera:(BOOL)bFront;

/*! @brief 设置美颜级别
 *
 * @param smoothLevel 美颜级别0,无美颜效果,1~9,美颜效果递增。
 * @return
 */
+(void) setBeautyFilter:(int)beautyLevel setWhiteningLevel:(int) whiteningLevel;

/*! @brief 获取SDK版本号
 *
 *
 * @return 返回数组元素分别为:mainversion,subversion,buildnumber
 */
+(NSArray*) getSDKVersion;

/*! @brief 获取CPU使用率
 *
 */
+(float) getCpuUsage;

+(int) parseStreamData:(char*)data len:(int)le;

+(void) setVideoFPS:(int)fps;

+(BOOL)enableHWAcceleration:(BOOL)enable;

+(BOOL)enableHWDec:(BOOL)enable;

+(int)seek:(int)time;

+(void)pause;

+(void)resume;

+(int)getFileOffset;

+(void)setLoadFinished:(BOOL)isFinished;

+(int)getLoadFinished;

+(void)setPushListener:(id<TXLivePushListener>)listener;

+(void)setPlayListener:(id<TXLivePlayListener>)listener;

/*! @brief 设置log输出级别
 *  level:参见 LOGLEVEL
 *
 */
+(void)setLogLevel:(TX_Enum_Type_LogLevel) level;

/*! @brief 设置播放器缓存时间
 *  @param time: 0表示根据网络状况自动调节,其他值表示播放器的缓存时间(单位秒)
 *
 */
+(void) setCacheTime:(int)time;

/*   自动调整播放器缓存时间
 *  参数:
 *        bEnable: YES:启用自动调整,自动调整的最大值和最小值可以分别通过setMaxCacheTime和setMinCacheTime设置;
 *                 NO:关闭自动调整,采用默认的指定缓存时间(1s),可以通过setCacheTime修改
 */
+(void) setAutoAdjustCache:(BOOL)bEnable;

/*   设置播放器缓存自动调整的最大时间
 *  参数:
 *       time: 时间(单位秒),time需要大于0
 *
 */
+(void) setMaxAutoAdjustCacheTime:(int)time;

/*   指定播放器缓存自动调整的最小时间
 *  参数:
 *       time: 时间(单位秒),time需要大于0
 *
 */
+(void) setMinAutoAdjustCacheTime:(int)time;

/*   设置播放器连接重试次数
 *  参数:
 *       count: 重试次数,最小值为 1, 最大值为 10
 */
+(void) setConnectRetryCount:(int)count;

/*   设置播放器连接重试间隔
 *  参数:
 *       interval: 重试间隔,最小值为 3, 最大值为 10
 */
+(void) setConnectRetryInterval:(int)interval;

/*   获取播放器连接重试次数
 *  返回值:
 *       count: 重试次数,最小值为 1, 最大值为 10
 */
+ (int)getConnectRetryCount;

/*   获取播放器连接重试间隔
 *  返回值:
 *       interval: 重试间隔,最小值为 3, 最大值为 10
 */
+ (int)getConnectRetryInterval;

/*   设置水印
 *  参数:
 *       watermark: 水印图片
 *       origin : 水印位置
 */
+ (void)addWatermark:(UIImage *)watermark origin:(CGPoint)origin;

/*   关闭水印
 */
+ (void)disableWatermark;

/**
 *  视频预处理Hook
 */
+ (void)setCustomVideoPreProcessFuncPtr:(PVideoProcessHookFunc) pFuncPtr;

/**
 *  音频预处理Hook
 */
+ (void)setCustomAudioPreProcessFuncPtr:(PAudioProcessHookFunc) pFuncPtr;

/*   检查是否是腾讯云的链接
 */
+ (BOOL)checkUrl:(NSString* )url;

@end