[ios] 미디어 파일의 마지막 재생 위치 저장

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

관련 기술 블로그 포스팅: