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

shared_preferences는 Flutter에서 사용자의 기기에 간단한 데이터를 저장하고 검색하기 위한 패키지입니다. 사용자가 본 영상의 재생 시간을 저장하기 위해 shared_preferences를 사용하는 방법을 알아보겠습니다.

1. 패키지 의존성 추가

먼저 shared_preferences 패키지를 사용하기 위해 pubspec.yaml 파일에 패키지 의존성을 추가해야 합니다. 아래와 같이 pubspec.yaml 파일을 열고 dependencies 섹션에 shared_preferences를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.6

의존성을 추가한 후에는 패키지를 다운로드하고 프로젝트를 업데이트하기 위해 터미널에서 flutter pub get 명령을 실행하세요.

2. 재생 시간 저장하기

이제 shared_preferences를 사용하여 사용자가 본 영상의 재생 시간을 저장할 수 있습니다. 아래는 예제 코드입니다.

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class VideoPlayerScreen extends StatefulWidget {
  @override
  _VideoPlayerScreenState createState() => _VideoPlayerScreenState();
}

class _VideoPlayerScreenState extends State<VideoPlayerScreen> {
  int _playTime = 0; // 재생 시간을 저장할 변수

  @override
  void initState() {
    super.initState();
    _loadPlayTime(); // 이전에 저장된 재생 시간을 불러옵니다.
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Video Player'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('Play Time: $_playTime seconds'),
            RaisedButton(
              child: Text('Save Play Time'),
              onPressed: () {
                _savePlayTime(); // 재생 시간을 저장합니다.
              },
            ),
          ],
        ),
      ),
    );
  }

  // 재생 시간을 저장하는 메서드
  _savePlayTime() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setInt('play_time', _playTime);
    setState(() {});
  }

  // 저장된 재생 시간을 불러오는 메서드
  _loadPlayTime() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      _playTime = prefs.getInt('play_time') ?? 0;
    });
  }
}

위의 예제 코드에서는 shared_preferences 패키지를 사용하여 재생 시간을 저장하고 불러오는 방법을 보여줍니다.

_playTime 변수는 재생 시간을 저장하는 데 사용됩니다. initState에서는 이전에 저장된 재생 시간을 불러옵니다. build 메서드에서는 재생 시간을 화면에 표시하고, Save Play Time 버튼을 누르면 _savePlayTime 메서드가 호출되어 재생 시간을 저장합니다. 저장된 재생 시간은 setState를 호출하여 화면을 업데이트합니다.

3. 재생 시간 사용하기

저장된 재생 시간을 사용하는 방법은 각 화면에서 _loadPlayTime 메서드를 호출하여 저장된 재생 시간을 불러오면 됩니다. 예를 들어 다른 화면에서 재생 시간을 사용하려면 해당 화면의 initState에서 _loadPlayTime 메서드를 호출하면 됩니다.

@override
void initState() {
  super.initState();
  _loadPlayTime(); // 재생 시간을 불러옵니다.
}

이제 shared_preferences를 사용하여 사용자가 본 영상의 재생 시간을 저장하고 불러오는 방법을 알았습니다. 이를 통해 영상 재생 시간과 같은 간단한 데이터를 사용자의 기기에 저장하고 사용할 수 있습니다.

더 자세한 내용은 shared_preferences 패키지의 문서를 참고하세요.