在直播过程中调用resetRecorder重新设置AVCaptureDevicePosition即可,AVCaptureDevicePositionFront表示前置摄像头,AVCaptureDevicePositionBack表示后置摄像头。
分辨率与码流的对应关系为:分辨率设置为width x height 则码流取值范围为 width/2(Kbit)至width x 1.5(Kbit)之间,一般取为width(Kbit)即可,具体根据网络带宽自行调整。通过setVideoBitrate进行设置,注意该参数只有iOS8 硬编才生效。
添加三个库libbz.tbd、libbz2.tbd和libiconv.tbd即可。如果使用老版本的SDK请将XpaiInterface.h里面的resArray数组定义删除。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: ' Can't add a nil AVCaptureInput'
ld: '/Users/phe/work/ios_workspace/TestSdk/TestSdk/libXpaiLib.a(XpaiPacket.o)' does not contain bitcode.
解决办法:在Build Settings->Enable Bitcode 设置为NO手势操作参考代码如下:
-(void)zoomSize:(UIPinchGestureRecognizer *)pinch {
static CGFloat pinchScale;
if (pinch.scale <= 1.01) {
pinchScale = 0;
}
if (pinch.scale > 1 && pinch.scale > pinchScale ) {
zoomNum = zoomNum + 0.025;
}else if (pinch.scale < 1 || pinch.scale < pinchScale){
zoomNum = zoomNum - 0.025;
}
if (zoomNum > 4) {
zoomNum = 4;
}else if( zoomNum < 1){
zoomNum = 1;
}
_zoomSlider.value = zoomNum;
pinchScale = pinch.scale;
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:nil];
[device setVideoZoomFactor:zoomNum];
[device unlockForConfiguration];
}
使用slider参考代码如下:
-(void)changeZoom:(UISlider *)slider {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:nil];
[device setVideoZoomFactor:slider.value];
[device unlockForConfiguration];
zoomNum = slider.value;
}
在非ARC环境下直接调用[player stop]即可,
在ARC环境下调用[player stop];
player = nil;
playview = nil;