Технические вопросы и ответы QA1607

Получение QTKit - отключение аудио или видео при получении от мультиплексированного устройства

Q: Как я могу отключить аудиопоток или видеопоток при получении от мультиплексированного устройства?

A: Как я могу отключить аудиопоток или видеопоток при получении от мультиплексированного устройства?

Мультиплексированные устройства, такие как DV и Камеры HDV представлены в Получении QTKit типом среды QTMediaTypeMuxed.

Чтобы только получить единый поток от устройства (например, только видео) отключите аудиосоединения на вводе устройства для устройства захвата изображения при помощи QTCaptureConnection метод setEnabled: и передача в NO.

Перечисление 1  отключает аудиосоединения от мультиплексированного ввода устройства.

QTCaptureDevice *theDefaultMuxedDevice;
QTCaptureDeviceInput *theDeviceInput;
BOOL success;
NSError *error;

...

// get the default muxed device
theDefaultMuxedDevice = [QTCaptureDevice defaultInputDeviceWithMediaType:QTMediaTypeMuxed];

// open the device
success = [theDefaultMuxedDevice open:&error];
if (YES == success) {
    // get the associated device input
    theDeviceInput = [QTCaptureDeviceInput deviceInputWithDevice:theDefaultMuxedDevice];

    // get the list of owned connections 
    NSArray *ownedConnections = [theDeviceInput connections];

    // disable all the audio connections
    for (QTCaptureConnection *connection in ownedConnections) {
        if ( [[connection mediaType] isEqualToString:QTMediaTypeSound] ) {
            [connection setEnabled:NO];
        }
    }
} else {
    // do something with the error code
}

...

Если Вы только хотите получить аудио, отключите QTMediaTypeVideo соединения.

Ссылки:

Введение в руководство по программированию получения QTKit



История версии документа


ДатаПримечания
19.05.2008

Новый документ, описывающий использование setEnabled: метод для отключения аудио или видеосъемки от мультиплексированных устройств.