我試圖觸發不同的行動,只有我自己的應用程序使用插入耳機的按鈕(類似pressy做的事情)。不過,我注意到,無論我使用MPRemoteCommandCenter
還是remoteControlReceivedWithEvent
委託人,我都會收到明顯滯後的事件。更糟糕的是,如果我嘗試快速按兩次按鈕,我只會得到一個UIEventTypeRemoteControl
。當按下耳機按鈕時的延遲iphone
有沒有人遇到類似的問題,知道此原因或甚至更好地瞭解一些解決方法?在ios8和ios9下測試。
我試圖觸發不同的行動,只有我自己的應用程序使用插入耳機的按鈕(類似pressy做的事情)。不過,我注意到,無論我使用MPRemoteCommandCenter
還是remoteControlReceivedWithEvent
委託人,我都會收到明顯滯後的事件。更糟糕的是,如果我嘗試快速按兩次按鈕,我只會得到一個UIEventTypeRemoteControl
。當按下耳機按鈕時的延遲iphone
有沒有人遇到類似的問題,知道此原因或甚至更好地瞭解一些解決方法?在ios8和ios9下測試。
快速雙擊確實是一個單用戶操作,因爲這是幾乎所有使用耳機控制輸入的應用程序中的理想行爲。它節省了開發人員必須手動去抖動,排隊和解析傳入控制事件,並且是一件好事(tm)!
爲了這個工作,系統將在等待進一步的用戶輸入時引入少量滯後。完成此操作只需幾百毫秒,之後您將在代碼中收到事件。
雙按檢測的長的,痛苦的,但希望有用的例子:
見的延遲是如何單/雙/三次檢測所必需的。
當事件到達您的應用程序將有其描述單擊該用戶進行了哪些類型的子類型:
let rc = event!.subtype
print("received remote control \(rc.rawValue)") // 101 = pause, 100 = play
switch rc {
case .RemoteControlTogglePlayPause:
// ..
case .RemoteControlPlay:
// ..
case .RemoteControlPause:
// ..
default:break
}
在similar question指出,這些事件代碼整數的答案是這樣的;
100 = play
101 = pause
103 = single mic click
104 = double mic click
105 = triple mic click
etc ...
在許多平臺上雙擊操作將作爲單個用戶事件處理。 UIEventTypeRemoteControl是否包含指示按鈕被按下多少次的任何屬性? –
你得到什麼樣的時間延遲「滯後」?在半秒到二秒之間?幾秒鐘?你能否提供一個樣本項目或可複製的測試案例? – JAL