注册

(iOS)急!环信视频过程中怎么切换前后摄像头

如题! 客户要求我们必须提供这个功能,但是环信似乎不支持!怎么办呢?!

如果支持切换,最好给几行示例代码,万分感谢!
已邀请:
另外,请官方添加一下前后摄像头切换功能吧! 这个是最基本的功能。所有的视频都需要做。

环信封装之后,我们开发再来做这个事情,就非常困难了!
demo2.0的实时视频,本地的视频显示是在demo上做的。具体代码在CallViewController->- (void)_initializeCamera方法中。你可以添加以下代码,在点击切换时,调用-swapFrontAndBackCameras, 亲测有效
- (AVCaptureDevice *)cameraWithPosition:(AVCaptureDevicePosition)position
{
_position = position;
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for ( AVCaptureDevice *device in devices )
if ( device.position == position )
return device;
return nil;
}

- (void)swapFrontAndBackCameras {
// Assume the session is already running

NSArray *inputs = _session.inputs;
for ( AVCaptureDeviceInput *input in inputs ) {
AVCaptureDevice *device = input.device;
if ( [device hasMediaType:AVMediaTypeVideo] ) {
AVCaptureDevicePosition position = device.position;
AVCaptureDevice *newCamera = nil;
AVCaptureDeviceInput *newInput = nil;

if (_position == AVCaptureDevicePositionFront)
newCamera = [self cameraWithPosition:AVCaptureDevicePositionBack];
else
newCamera = [self cameraWithPosition:AVCaptureDevicePositionFront];
newInput = [AVCaptureDeviceInput deviceInputWithDevice:newCamera error:nil];

// beginConfiguration ensures that pending changes are not applied immediately
[_session beginConfiguration];

[_session removeInput:input];
[_session addInput:newInput];

// Changes take effect once the outermost commitConfiguration is invoked.
[_session commitConfiguration];
break;
}
}
}
请问一下 你这个问题解决了么 

要回复问题请先登录注册