试图弄清楚如何读取 Apple 耳机的音量按钮以用作相机快门的触发器(就像 Apple Camera 应用程序所做的那样)。
从Remote Control Events、
Remote Control Received With Event和这个 git repo的文档中,我拼凑出我可能需要一个AVAudioPlayer
对象,.beginReceivingRemoteControlEvents()
和remoteControlReceivedWithEvent
,以及制作这个视图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()
}
}
我希望"does this work"
在按下耳机上的音量按钮时会得到,但我只是看到它像往常一样调节耳机音量。所以我一定错过了一些东西,也许是delegate
or AVSession
?