1

我是 AVFoundation 的新手,我正在尝试使用 AVFoundation 实现摄像机,这是我的基本设置。基本上,当您单击按钮时,它将调用 showCamera 方法。在这里我创建会话,然后添加音频输入和视频输入,然后添加视频输出。

我在哪里添加 AVCaptureConnection,我该怎么做?是否有一些教程显示如何使用连接?任何帮助表示赞赏。

- (IBAction) showCamera
{
//Add the camview to the current view ontop of controller
[[[[[UIApplication sharedApplication] delegate] self] window] addSubview:camView];

session = [[AVCaptureSession alloc] init];

//Set preset on session to make recording scale high
if ([session canSetSessionPreset:AVCaptureSessionPresetHigh]) {
    session.sessionPreset = AVCaptureSessionPresetHigh;
}

// Add inputs and outputs.
NSArray *devices = [AVCaptureDevice devices];

//Print out all devices on phone
for (AVCaptureDevice *device in devices) 
{

    if ([device hasMediaType:AVMediaTypeVideo]) 
    {

        if ([device position] == AVCaptureDevicePositionBack) 
        {

            //Add Rear Video input to session
            [self addRearCameraInputToSession:session withDevice:device];

        }


    } 
    else if ([device hasMediaType:AVMediaTypeAudio]) 
    {

        //Add Microphone input to session
        [self addMicrophoneInputToSession:session withDevice:device];
    }
    else
    {
        //Show error that your camera does not have a phone
    }
}



//Add movie output
[self addMovieOutputToSession:session];

//Construct preview layer
[self constructPreviewLayerWithSession:session onView:camView];

}

4

2 回答 2

2

您无需手动添加 AVCaptureConnections。当您将输入和输出都添加到 AVCaptureSession 对象时,会自动为您创建连接。引用文档

当输入或输出添加到会话时,会话会在所有兼容的捕获输入端口和捕获输出之间贪婪地形成连接。

除非您需要禁用自动创建的连接之一,或更改videoMirroredorvideoOrientation属性,否则您根本不必担心它们。

于 2011-04-19T03:21:31.210 回答
0

看看下面的网址...

来自 Apple 的文档:

一篇文章:

使用 AVFoundation 框架 iPhone 录制视频?

我想,它会帮助你......

于 2011-04-19T04:47:31.953 回答