Skip to content

Commit

Permalink
fix(ios): Add handler for Earpods play/pause command (#4116)
Browse files Browse the repository at this point in the history
  • Loading branch information
sharnik authored Aug 29, 2024
1 parent 0576eac commit 9c38d9f
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions ios/Video/NowPlayingInfoCenterManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class NowPlayingInfoCenterManager {
private var skipBackwardTarget: Any?
private var playbackPositionTarget: Any?
private var seekTarget: Any?
private var togglePlayPauseTarget: Any?

private let remoteCommandCenter = MPRemoteCommandCenter.shared()

Expand Down Expand Up @@ -172,6 +173,21 @@ class NowPlayingInfoCenterManager {
}
return .commandFailed
}

// Handler for togglePlayPauseCommand, sent by Apple's Earpods wired headphones
togglePlayPauseTarget = remoteCommandCenter.togglePlayPauseCommand.addTarget { [weak self] _ in
guard let self, let player = self.currentPlayer else {
return .commandFailed
}

if player.rate == 0 {
player.play()
} else {
player.pause()
}

return .success
}
}

private func invalidateCommandTargets() {
Expand All @@ -180,6 +196,7 @@ class NowPlayingInfoCenterManager {
remoteCommandCenter.skipForwardCommand.removeTarget(skipForwardTarget)
remoteCommandCenter.skipBackwardCommand.removeTarget(skipBackwardTarget)
remoteCommandCenter.changePlaybackPositionCommand.removeTarget(playbackPositionTarget)
remoteCommandCenter.togglePlayPauseCommand.removeTarget(togglePlayPauseTarget)
}

public func updateNowPlayingInfo() {
Expand Down

0 comments on commit 9c38d9f

Please sign in to comment.