2017-10-14 5 views
3

Ajout entrée audio du microphone AVCaptureSession semble désactiver UIImpactFeedbackGenerator.UIImpactFeedbackGenerator ne fonctionne pas lorsque l'appareil Audio Ajouté à AVCaptureSession

let audioDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAudio) 
let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice) 
if self.session.canAddInput(audioDeviceInput) { 
    self.session.addInput(audioDeviceInput) 
} 

Une fois le périphérique audio retiré, le retour d'informations reprend.

Est-ce un comportement normal? Y a-t-il un moyen de contourner ceci?

Je remarque que l'application stock iOS Camera en mode vidéo et l'appui prolongé sur la vignette semblent toujours faire fonctionner le feedback. Donc, il doit y avoir un moyen de contourner cela?

Répondre

3

Cela semble être un comportement intentionnel.

Vous pouvez arrêter la session de capture, lire le haptique, puis reprendre la session de capture, ce qui semble être l'application de la caméra, lorsque vous regardez le flux de la caméra vers une image statique floue de la dernière image capturée . Par exemple:

self.session.stopRunning() 
// Play haptic 
UINotificationFeedbackGenerator().notificationOccurred(.warning) 
// Not completely sure if this delay is needed but you might need to wait until the run loop after the haptic plays to resume capture session 
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) 
{ 

    self.session.startRunning() 
}