Cercando di capire come leggere i pulsanti del volume della cuffia Apple da utilizzare come trigger per l'otturatore della fotocamera (come fa l'app Apple Camera).Evento di controllo remoto in iOS con Swift
Dalla documentazione sulla Remote Control Events, Remote Control Received With Event e this git repo, ho messo insieme che io probabilmente bisogno di un oggetto AVAudioPlayer
, .beginReceivingRemoteControlEvents()
, e remoteControlReceivedWithEvent
, insieme a fare questo punto di vista canBecomeFirstResponder()
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()
}
}
mi aspettavo di ottenere "does this work"
quando colpisce i pulsanti del volume sulle cuffie, invece ho appena vedo regolare il volume delle cuffie come normale. Quindi mi manca qualcosa, forse con un delegate
o AVSession
?
Questo funziona per me (con leggera modifica per Swift 3) in privato. Qualcuno sa se l'uso di questo tipo sarà accettato per l'App Store? – triiiiista