-
Notifications
You must be signed in to change notification settings - Fork 272
apiAdjust
pengbin edited this page Jul 31, 2017
·
30 revisions
接口变动在每次发布的release note中查看
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- 参见 release note
- kit类中添加了rotatePreview 和 rotateStream 方法
- KSYGPUPicMixer 的每个图层添加了 GPUImageRotationMode的属性, 可用于镜像属性设置 (90°或270°的旋转暂时不支持)
- kit类中 将原本的vMixer 拆分为 预览和推流的两个mixer
- 增加AudioToolbox的音频编码器, 参见KSYAudioCodec定义 和 KSYStreamerBase的audioCodec属性
- 增加输入数据音视频不同步错误类型 KSYStreamErrorCode_AV_SYNC_ERROR, 参见KSYStreamerBase的streamErrorCode属性
- KSYGPUPicOutput 中添加outputPixelFormat 属性, 支持 4444AYpCbCr8 和 32BGRA两种像素格式
- 视频编码器 VT264 增加对 KSYVideoEncodePerformance 的支持, 参见KSYStreamerBase的videoEncodePerf属性
- KSYStreamerBase 中增加 bwEstimateMode属性, 用于设置网络自适应带宽估计模式,具体配置模式请参考KSYBWEstimateMode
- 移除 KSYGPUCamera 中的bPauseCaptureOnNotice属性
- 新增资源文件KSYGPUResource.bundle
- 新增特效滤镜KSYBuildInSpecialEffects, 包括6种内置特效和自定义特效接口, 内置特效需要依赖
-
版本发布方式变更:
- 由原来的单个framework的发布 改为 多个静态库和头文件的发布方式(可根据需要灵活组合)
- 提供带配置参数的脚本文件 releaseFramework/release-libKSYLive.sh, 根据参数配置生成framework
- Podspec 名称变更为libksygpulive, 并增加了submodule, 通过指定不同的submodule来满足不同应用场景的需求
-
kit类的源代码开放
kit类主要作用有两个:- 将积木类进行组合, 能够满足简单推流场景的需求, 简单易用
- 作为积木类API使用的范例, 方便用户定制开发
-
新增图像混合类 KSYGPUPicMixer
-
新增AVAudioSession工具类 KSYAVAudioSession
- 以前与音频的采集播放相关的接口都挪到这个类中了, 比如
- kit.bInterruptOtherAudio 属性挪到了 kit.avAudioSession.bInterruptOtherAudio 中
- 另外,kit类提供了initWithInterruptCfg 和initWithDefaultCfg, 对应构造bInterruptOtherAudio属性为YES和NO的kit实例
-
kit类分辨率设置接口变更 参见
- 新的设置方法:
- 采集分辨率 直接使用 Apple定义的preset
- 预览和推流分辨率直接通过CGSize指定, 通过GPU进行裁剪和缩放
/**
@abstract 初始化方法
@discussion 创建带有默认参数的 kit,会打断其他后台的音乐播放
@warning kit只支持单实例推流,构造多个实例会出现异常
*/
- (instancetype) initWithInterruptCfg;
/**
@abstract 图像混合器
@discussion 将多图层的内容叠加
*/
@property (nonatomic, readonly) KSYGPUPicMixer *vMixer;
/**
@abstract 获取渲染的图像
@discussion 用于衔接GPU和streamer
*/
@property (nonatomic, readonly)KSYGPUPicOutput *gpuToStr;
/**
@abstract 配置管理 AVAudioSession的工具类
*/
@property (nonatomic, readonly) KSYAVAudioSession *avAudioSession;
/** 摄像头图层 */
@property (nonatomic, readonly) NSInteger cameraLayer;
/** logo 图片的图层 */
@property (nonatomic, readonly) NSInteger logoPicLayer;
/** logo 文字的图层 */
@property (nonatomic, readonly) NSInteger logoTxtLayer;
/**
@abstract 采集分辨率 (仅在开始采集前设置有效)
@discussion 参见iOS的 AVCaptureSessionPresetXXX的定义
@discussion https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVCaptureSession_Class/#//apple_ref/doc/constant_group/Video_Input_Presets
@discussion 透传到 KSYGPUCamera. 默认值为AVCaptureSessionPreset640x480
@discussion 不同设备支持的预设分辨率可能不同, 请尽量与预览分辨率一致
*/
@property (nonatomic, assign) NSString * capPreset;
/**
@abstract 查询实际的采集分辨率
@discussion 参见iOS的 AVCaptureSessionPresetXXX的定义
*/
- (CGSize) captureDimension;
/**
@abstract gpu output pixel format (默认:kCVPixelFormatType_32BGRA)
@discussion 目前只支持 kCVPixelFormatType_32BGRA 和 kCVPixelFormatType_4444AYpCbCr8
@discussion kCVPixelFormatType_4444AYpCbCr8 的排列顺序为 (A Y' Cb Cr)
@discussion 其他非法都会被当做 kCVPixelFormatType_32BGRA 处理
@discussion 仅在开始推流前设置有效
*/
@property(nonatomic, assign) OSType gpuOutputPixelFormat;
V1.8.0 earlyer
/**
@abstract 获取开始推流后的采集设备
@discussion 通过该指针可以对摄像头进行操作
*/
@property (nonatomic, readonly) KSYGPUCamera* capDev;
V1.8.0 and later
/**
@abstract 视频采集设备
@discussion 通过该指针可以对摄像头进行操作 (操作接口参见GPUImage)
*/
@property (nonatomic, readonly) KSYGPUCamera *vCapDev;
V1.8.0 earlier
/**
@abstract Audio Unit 音频采集
*/
@property (nonatomic, readonly) KSYAUAudioCapture* audioCapDev;
V1.8.0 and later
/**
@abstract 音频采集设备 Audio Unit 音频采集
*/
@property (nonatomic, readonly) KSYAUAudioCapture *aCapDev;
V1.8.0 earlier
/**
@abstract 混音调节器
*/
@property (nonatomic, readonly) KSYAudioMixer * audioMixer;
V1.8.0 and later
/**
@abstract 音频混合器
@discussion 用于将多路音频进行混合,将混合后的音频送入streamerBase
*/
@property (nonatomic, readonly) KSYAudioMixer *aMixer;
- (void) setVideoOrientationBy: (UIInterfaceOrientation)uiOrien;
/**
@abstract AVCaptureVideoOrientation / UIInterfaceOrientation
*/
+ (AVCaptureVideoOrientation) getCapOrientation: (UIInterfaceOrientation) orient ;
/**
@abstract 是否将视频数据送入streamer (默认为NO)
@see streamer
*/
@property BOOL bStreamVideo;
/**
@abstract 是否将音频数据送入streamer (默认为YES)
@see streamer
*/
@property BOOL bStreamAudio;
- 在V1.7.1之前采集接口
/**
@abstract 获取开始推流后的采集设备
@discussion 通过该指针可以对摄像头进行操作
*/
@property (nonatomic, readonly) KSYGPUCamera* capDev;
- 在1.7.1调整为
/**
@abstract 视频采集设备
@discussion 通过该指针可以对摄像头进行操作 (操作接口参见GPUImage)
*/
@property (nonatomic, readonly) KSYGPUCamera *capDev;
使用方法:
初始化:
_capDev = [[KSYGPUCamera alloc] initWithSessionPreset:_capPreset
cameraPosition:_cameraPosition];
视图输出方向
_capDev.outputImageOrientation = UIInterfaceOrientationPortrait;
开始采集
[_capDev startCameraCapture];
摄像头原始数据回调
_capDev.videoProcessingCallback = ^(CMSampleBufferRef but){
};
停止采集
[_capDev stopCameraCapture];
/**
@abstract 音频采集设备 Audio Unit 音频采集
*/
@property (nonatomic, readonly) KSYAUAudioCapture *audioCapDev;
使用方法:
初始化音频采集模块
_audioCapDev = [[KSYAUAudioCapture alloc] init];
音频采集, 语音数据送入混音器
_audioCapDev.audioProcessingCallback = ^(CMSampleBufferRef buf){
[kit mixAudio:buf to:KSYMicTrack];
};
开始采集
[_audioCapDev startCapture];
/**
@abstract 本次直播的目标场景 (默认为KSYLiveScene_Default)
@discussion KSY内部会根据场景的特征进行参数调优,开始推流前设置有效
*/
@property (nonatomic, assign) KSYLiveScene liveScene;
/**
@abstract 视频编码性能档次 ( 默认为 KSYVideoEncodePer_LowPower)
@discussion 视频质量和设备资源之间的权衡,开始推流前设置有效
*/
@property (nonatomic, assign) KSYVideoEncodePerformance videoEncodePerf;