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 패키지의 문서를 참고하세요.