Evento de control remoto en iOS con Swift

Intentando descubrir cómo leer los botones de volumen de los auriculares Apple para usarlos como disparador del obturador de la cámara (como lo hace la aplicación Apple Camera).

De la documentación enEventos de control remoto, Control remoto recibido con eventoyeste repositorio git, He reconstruido que probablemente necesitaré unAVAudioPlayer objeto,.beginReceivingRemoteControlEvents()yremoteControlReceivedWithEvent, junto con hacer esta vistacanBecomeFirstResponder() return true.

import UIKit
import AVFoundation

class ViewController: UIViewController, AVAudioPlayerDelegate {
    var player: AVAudioPlayer!
    override func viewDidLoad() {
        super.viewDidLoad()

        var session: AVAudioSession = AVAudioSession.sharedInstance()
        session.setActive(true, error: nil)
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        println("viewDidAppear worked...")
        self.becomeFirstResponder()
        UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
    }

    override func canBecomeFirstResponder() -> Bool {
        return true
    }

    override func remoteControlReceivedWithEvent(event: UIEvent) {
        let rc = event.subtype
        println("does this work? \(rc.rawValue)")
        //takePicture()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

Esperaba obtener"does this work" Al presionar los botones de volumen en los auriculares, en cambio solo veo que ajusta el volumen de los auriculares como de costumbre. Debo estar perdiendo algo, tal vez con undelegate oAVSession?

Respuestas a la pregunta(1)

Su respuesta a la pregunta