В iOS, для предварительного просмотра видео я обнаружил, что должен использовать AVCaptureVideoPreviewLayer
с экземпляром AVCaptureSession
.Например,
AVCaptureSession *captureSession = <#Get a capture session>;
AVCaptureVideoPreviewLayer *previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:captureSession];
UIView *aView = <#The view in which to present the layer#>;
previewLayer.frame = aView.bounds;
[aView.layer addSublayer:previewLayer];
И AVCaptureSession
нужно немного AVCaptureDevices
и AVCaptureDeviceInputs
Например,
AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];
AVCaptureDevice *audioCaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
NSError *error = nil;
AVCaptureDeviceInput *audioInput = [AVCaptureDeviceInput deviceInputWithDevice:audioCaptureDevice error:&error];
if (audioInput) {
[captureSession addInput:audioInput];
}
else {
// Handle the failure.
}
Я ссылался на документы по разработке Apple дляприведенные выше примеры.Но независимо от того, являются ли устройства аудио или видео, во всех примерах используется только встроенная камера и микрофон iPhone / iPad.
Мой проект использует не встроенную камеру и микрофон, а внешние аксессуары, которые поддерживают MP4 и уже совместимы с MFi.
Я уже тестировал аутентификацию и идентификацию MFi, а также поток битов MP4, поступающий на устройства iPhone с использованием внешней инфраструктуры аксессуаров.
Но я понятия не имею, как я могу использовать поток битов от внешнего аксессуара (вместо встроенной камеры и микрофона) для отображения предварительного просмотра в представлении пользовательского интерфейса iPhone.Есть ли эксперт в такого рода проблем?