我有一个videoInput设备列表。首先,我添加了用于录制的默认输入设备,设置了压缩、输出和所需的一切。之后我尝试改变输入设备,但不知何故,视图停止工作,只显示黑屏。当我不记录时,我试图改变,只显示视图中的输入。下面是修改的代码:
-(void) changeVideoInput:(QTCaptureDevice *)videoDevice{
BOOL success = NO;
NSError *error;
[mCaptureSession stopRunning];
[mCaptureSession removeInput:mCaptureVideoDeviceInput]; //current input
[[mCaptureVideoDeviceInput device] close];
success = [videoDevice open:&error];
mCaptureVideoDeviceInput2 = [[QTCaptureDeviceInput alloc] initWithDevice:videoDevice]; //new input
success = [mCaptureSession addInput:mCaptureVideoDeviceInput2 error:&error];
[mCaptureSession startRunning];
}
最后我弄清楚了,代码是工作的。这个问题导致打开默认的视频设备(它的名字是:"Blackmagic")。不要打开那个设备。这是一种通用设备。