iOS 백그라운드 오디오 플레이 컨트롤 예제
2020. 5. 17. 05:59ㆍ아이폰 개발
완벽하지는 않지만, 일반적인 iOS용 뮤직 플레이 앱들처럼 싱크 컨트롤 센터와 연동하도록 만드는 예제이다.
https://medium.com/@quangtqag/background-audio-player-sync-control-center-516243c2cdd1
다음 예제는 iOS 오디오 플레이어 컨트롤 센터와 연동이 되는 것은 아니지만, 간단하게 백그라운드로 음악을 시작/종료 할 수 있는 예제이다.
https://www.zerotoappstore.com/how-to-add-background-music-in-swift.html
이전/다음 버튼을 눌렀을 때 처리하는 방법
import MediaPlayer
let rcc = MPRemoteCommandCenter.shared()
let skipBackwardCommand = rcc.skipBackwardCommand
skipBackwardCommand.isEnabled = true
skipBackwardCommand.addTarget(handler: skipBackward)
skipBackwardCommand.preferredIntervals = [42]
let skipForwardCommand = rcc.skipForwardCommand
skipForwardCommand.isEnabled = true
skipForwardCommand.addTarget(handler: skipForward)
skipForwardCommand.preferredIntervals = [42]
func skipBackward(_ event: MPRemoteCommandEvent) -> MPRemoteCommandHandlerStatus {
guard let command = event.command as? MPSkipIntervalCommand else {
return .noSuchContent
}
let interval = command.preferredIntervals[0]
print(interval) //Output: 42
return .success
}
func skipForward(_ event: MPRemoteCommandEvent) -> MPRemoteCommandHandlerStatus {
guard let command = event.command as? MPSkipIntervalCommand else {
return .noSuchContent
}
let interval = command.preferredIntervals[0]
print(interval) //Output: 42
return .success
}
다음은 오디오간 우선 순위에 관하여 정리된 레퍼런스이다.
https://steemit.com/kr/@babysloth/ios-dev-avaudiosession-programming-guide-1