앱 외부에서 음악이나 동영상 같은 시스템 원격 제어에 응답하는 객체
MPRemoteCommandCenter를 사용할 때 이 클래스는 싱글 톤 객체이기 때문에 객체를 직접 만들면 안되고 shared( ) 메서드를 사용하여 작업을 해야합니다. MPRemoteCommandCenter 클래스는 MPRemoteCommand 객체를 포함하여 다양한 원격 제어 이벤트에 응답할 수 있습니다. 이 싱글톤 객체를 구성하면 다루고 싶은 앱의 이벤트를 처리할 수 있습니다.
싱글 톤 객체 가져오기
class func shared() -> MPRemoteCommandCenter
: 시스템의 원격 명령 객체에 액세스하는 데 사용하는 싱글 톤 객체를 반환합니다.
재생 명령
var pauseCommand: MPRemoteCommand
: 현재 재생중인 미디어를 정지시키는 명령
var playCommand: MPRemoteCommand
: 현재 미디어를 재생시키는 명령
var stopCommand: MPRemoteCommand
: 현재 미디어를 중단시키는 명령
var togglePlayPauseCommand: MPRemoteCommand
: 현재 미디어의 재생과 정지 상태를 toggle 시키는 명령
트랙 사이를 이동하기
var nextTrackCommand: MPRemoteCommand
: 다음 트랙을 선택
var previousTrackCommand: MPRemoteCommand
: 이전 트랙을 선택
var changeRepeatModeCommand: MPChangeRepeatModeCommand
: 반복 모드 선택
var changeShuffleModeCommand: MPChangeShuffleModeCommand
: 셔플 모드 선택
func setupRemoteCommands() {
let remoteCommandCenter = MPRemoteCommandCenter.shared()
remoteCommandCenter.pauseCommand.addTarget { _ in
self.pausePlayback()
return .success
}
remoteCommandCenter.playCommand.addTarget { _ in
self.resumePlayback()
return .success
}
remoteCommandCenter.previousTrackCommand.addTarget { _ in
self.previousPlayback()
return .success
}
remoteCommandCenter.nextTrackCommand.addTarget { _ in
self.nextPlayback()
return .success
}
}
func togglePlayback() {
if isPlaying {
pausePlayback()
} else {
resumePlayback()
}
}
func pausePlayback() {
// Pause playback logic
isPlaying = false
player?.pause()
}
func resumePlayback() {
// Resume playback logic
isPlaying = true
player?.play()
}
func previousPlayback() {
isPlaying = true
playSound()
}
func nextPlayback() {
isPlaying = true
nextSound()
}
'SwiftUI' 카테고리의 다른 글
Core Bluetooth (0) | 2024.03.07 |
---|---|
AVPlayer 음악 또는 미디어가 끝났을 때 (0) | 2024.03.06 |
MPNowPlayingInfoCenter (잠금화면 미디어정보) (0) | 2024.03.03 |
SafariView 사파리뷰 (0) | 2024.01.19 |
Web Links - 웹 링크 연동시키기 (0) | 2024.01.17 |