iOS / iPhone - lydløs-bryteren ikke fungerer etter å ha lagt AVCaptureAudioDataOutput å AVCaptureSession

stemmer
3

Jeg har en AVCaptureSession som forvalter video og bildeopptak for min søknad. Jeg har også lydeffekter i programmet som selvfølgelig er brakt til taushet når brukeren slår stillhet bryter på sin iPhone.

Men når jeg legger AVCaptureAudioDataOutput til økten, er lydeffektene ikke lenger stilnet når stillheten bryteren er satt.

Her er koden som brukes for å legge Audion:

    NSError *errorAud;
    AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
    AVCaptureDeviceInput *audioDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:audioDevice error:&errorAud];

    if (errorAud) {

        NSLog(@%@, [errorAud localizedDescription]);
    }

    if ( [avSession canAddInput:audioDeviceInput] ) {
        [avSession addInput:audioDeviceInput];
        [self setAudioCaptureDeviceInput:audioDeviceInput];
    }


    audioOutput = [[AVCaptureAudioDataOutput alloc] init];
    [audioOutput setSampleBufferDelegate:self queue:vsessionQueue];




    if ([avSession canAddOutput:audioOutput]) {
        [avSession addOutput:audioOutput];
    }


    for (AVCaptureConnection *connection in [audioOutput connections]) {
        for (AVCaptureInputPort *port in [connection inputPorts]) {
            if ([[port mediaType] isEqual:AVMediaTypeAudio]) {

                audioConnection = connection;

                break;
            }
        }

    }

    AVAuthorizationStatus audioAuthorizationStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];



    //This sort of fixes the silent mode issue but makes the capture session
    //stop outputs stop calling didOutputSampleBuffer
    //Whenever a sound effect is played
    //avSession.usesApplicationAudioSession = NO;
    //avSession.automaticallyConfiguresApplicationAudioSession = NO; 

Som du kan fra det ovenstående, prøvde jeg å rote med usesApplicationAudioSession og automaticallyConfiguresApplicationAudioSession men å sette usesApplicationAudioSession = NO gjør capturesession slutte å kalle

- (void) captureOutput: (AVCaptureOutput *) captureOutput didOutputSampleBuffer: (CMSampleBufferRef) sampleBuffer fromConnection: (AVCaptureConnection *) tilkobling

når jeg spiller en lydeffekt hjelp AVAudioPlayer

Publisert på 09/11/2014 klokken 13:21
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more