iOS 앱에서는 보통 미디어 파일(예: 비디오 또는 오디오)을 재생하는 경우가 많습니다. 사용자가 이전에 재생한 미디어 파일의 마지막 재생 위치를 저장하여 나중에 다시 재생할 때 해당 위치부터 재생할 수 있도록 하는 기능을 구현하는 방법에 대해 알아보겠습니다.
UserDefaults를 활용한 마지막 재생 위치 저장
iOS에서는 UserDefaults
를 사용하여 간단한 데이터를 저장하고 관리할 수 있습니다. 이를 활용하여 미디어 파일의 마지막 재생 위치를 저장할 수 있습니다.
다음은 미디어 파일의 마지막 재생 위치를 UserDefaults
에 저장하는 Swift 코드의 예시입니다.
// 마지막 재생 위치를 저장합니다.
func saveLastPlaybackPosition(forMedia mediaURL: URL, position: TimeInterval) {
UserDefaults.standard.set(position, forKey: mediaURL.absoluteString)
}
// 마지막 재생 위치를 불러옵니다.
func loadLastPlaybackPosition(forMedia mediaURL: URL) -> TimeInterval {
return UserDefaults.standard.double(forKey: mediaURL.absoluteString)
}
위의 예시에서 saveLastPlaybackPosition
함수는 주어진 미디어 URL과 재생 위치를 사용하여 UserDefaults
에 값을 저장하고, loadLastPlaybackPosition
함수는 주어진 미디어 URL에 저장된 값으로부터 마지막 재생 위치를 불러오는 방법을 보여줍니다.
AVPlayer를 활용한 재생 위치 제어
AVPlayer
를 사용하여 미디어를 재생하는 경우, 이전에 저장한 마지막 재생 위치를 불러와서 해당 위치부터 다시 재생할 수 있습니다.
// AVPlayer를 사용하여 마지막 재생 위치로 이동합니다.
func seekToLastPlaybackPosition(forMedia mediaURL: URL) {
let player = AVPlayer(url: mediaURL)
let lastPosition = loadLastPlaybackPosition(forMedia: mediaURL)
player.seek(to: CMTime(seconds: lastPosition, preferredTimescale: 1))
}
위의 코드에서 seekToLastPlaybackPosition
함수는 AVPlayer
를 사용하여 저장된 마지막 재생 위치로 이동하도록 하는 방법을 보여줍니다.
결론
iOS 앱에서는 UserDefaults
를 활용하여 미디어 파일의 마지막 재생 위치를 저장하고, AVPlayer
를 사용하여 저장된 위치로 이동함으로써 사용자가 편리하게 이전 재생 위치에서 다시 재생을 시작할 수 있도록 구현할 수 있습니다.
이러한 기능을 통해 사용자 경험을 향상시키고, 미디어 파일을 다루는 앱의 가치를 높일 수 있습니다.
참고 자료: Apple Developer Documentation - UserDefaults, Apple Developer Documentation - AVPlayer
관련 기술 블로그 포스팅: