[flutter] shared_preferences 를 사용하여 사용자가 본 동영상의 재생 위치를 저장하는 방법은 무엇인가요?

Flutter에서 사용자가 동영상을 시청할 때, 재생 위치를 저장하고 복원하는 것은 매우 유용합니다. 이를 위해 shared_preferences 패키지를 사용할 수 있습니다. shared_preferences는 Flutter 앱에서 간단한 키-값 쌍을 저장하고 검색하기 위한 인터페이스를 제공합니다.

shared_preferences 패키지 추가하기

먼저, pubspec.yaml 파일에 shared_preferences 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 패키지를 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.6

그리고 패키지를 가져오기 위해 pub get 명령을 실행해주어야 합니다:

flutter pub get

이제 shared_preferences 패키지를 사용할 준비가 되었습니다.

재생 위치 저장하기

동영상의 재생 위치를 저장하기 위해 먼저 SharedPreferences 인스턴스를 생성해야 합니다. 이를 위해서는 SharedPreferences.getInstance() 메서드를 호출해야 합니다. 아래는 예시 코드입니다:

import 'package:shared_preferences/shared_preferences.dart';

void saveVideoPlaybackPosition(String videoId, int position) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setInt('video_${videoId}_position', position);
}

위의 코드에서 videoId는 동영상의 고유 식별자를 나타내며, position은 재생 위치입니다. videoId를 사용하여 키를 생성하고, position을 해당 키에 대한 값으로 저장합니다.

재생 위치 복원하기

저장된 재생 위치를 복원하기 위해서는 getInt() 메서드를 사용하여 해당 키의 값을 가져와야 합니다. 아래는 예시 코드입니다:

import 'package:shared_preferences/shared_preferences.dart';

Future<int> getVideoPlaybackPosition(String videoId) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  int position = prefs.getInt('video_${videoId}_position');
  return position ?? 0;
}

위의 코드에서 videoId는 복원할 동영상의 고유 식별자입니다. 해당 키의 값을 가져온 후, 값이 null인 경우 0을 반환합니다.

사용 예시

이제 재생 위치를 저장하고 복원하는 예시를 살펴보겠습니다:

String videoId = 'abcd1234';
int currentPosition = 120; // 현재 재생 위치

// 재생 위치 저장
saveVideoPlaybackPosition(videoId, currentPosition);

// 재생 위치 복원
int restoredPosition = await getVideoPlaybackPosition(videoId);

위의 코드에서 videoId는 동영상의 고유 식별자이며, currentPosition은 재생 위치입니다. saveVideoPlaybackPosition 함수를 사용하여 현재 재생 위치를 저장하고, getVideoPlaybackPosition 함수를 사용하여 복원합니다.

마무리

이제 Flutter 앱에서 동영상 재생 위치를 저장하고 복원하는 방법에 대해 알아보았습니다. shared_preferences를 사용하여 간단하게 데이터를 저장하고 검색할 수 있으므로, 앱의 사용자 경험을 향상시키는데 도움이 될 것입니다.