【发布时间】:2015-08-06 13:08:16
【问题描述】:
试图弄清楚如何读取 Apple 耳机的音量按钮以用作相机快门的触发器(就像 Apple 相机应用程序所做的那样)。
从 Remote Control Events、
Remote Control Received With Event 和 this 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 或AVSession?
【问题讨论】:
标签: ios iphone swift camera headphones