이번에는 Flutter에서 RaisedButton을 사용하여 동영상을 재생해보겠습니다. Flutter는 Dart 언어를 사용하여 크로스 플랫폼 앱 개발을 지원하는 프레임워크입니다.
1. 비디오 플레이어 패키지 추가하기
동영상을 재생하기 위해 video_player 패키지를 추가해야 합니다. 이 패키지를 사용하여 동영상을 로드하고 플레이할 수 있습니다.
pubspec.yaml
파일에 다음과 같이 패키지를 추가합니다:
dependencies:
flutter:
sdk: flutter
video_player: ^0.10.11
패키지를 추가한 후, 터미널에서 다음 커맨드를 실행하여 패키지를 설치합니다:
flutter pub get
2. 비디오 플레이어 사용하기
각각의 단계를 따라 비디오 플레이어를 사용하여 동영상을 재생해봅시다.
먼저, main.dart
파일에 다음 코드를 추가합니다:
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
void main() => runApp(VideoPlayerApp());
class VideoPlayerApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Video Player',
home: Scaffold(
appBar: AppBar(
title: Text('Video Player'),
),
body: VideoPlayerScreen(),
),
);
}
}
class VideoPlayerScreen extends StatefulWidget {
@override
_VideoPlayerScreenState createState() => _VideoPlayerScreenState();
}
class _VideoPlayerScreenState extends State<VideoPlayerScreen> {
VideoPlayerController _controller;
Future<void> _initializeVideoPlayerFuture;
@override
void initState() {
_controller = VideoPlayerController.asset('assets/video.mp4');
_initializeVideoPlayerFuture = _controller.initialize();
_controller.setLooping(true);
super.initState();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: _initializeVideoPlayerFuture,
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
);
} else {
return Center(child: CircularProgressIndicator());
}
},
);
}
}
위의 코드는 Flutter 앱 템플릿에서 시작하여 VideoPlayerScreen 위젯을 생성해주고, 비디오 플레이어를 초기화하고 재생할 준비를 합니다. 비디오 파일은 ‘assets/video.mp4’ 경로로 사용되었습니다.
3. RaisedButton 추가하기
이제 RaisedButton을 추가하여 동영상을 제어하는 버튼을 만들어봅시다. 코드를 다음과 같이 수정합니다:
class VideoPlayerScreen extends StatefulWidget {
@override
_VideoPlayerScreenState createState() => _VideoPlayerScreenState();
}
class _VideoPlayerScreenState extends State<VideoPlayerScreen> {
VideoPlayerController _controller;
Future<void> _initializeVideoPlayerFuture;
@override
void initState() {
_controller = VideoPlayerController.asset('assets/video.mp4');
_initializeVideoPlayerFuture = _controller.initialize();
_controller.setLooping(true);
super.initState();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Expanded(
child: FutureBuilder(
future: _initializeVideoPlayerFuture,
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
);
} else {
return Center(child: CircularProgressIndicator());
}
},
),
),
RaisedButton(
onPressed: () {
setState(() {
_controller.value.isPlaying
? _controller.pause()
: _controller.play();
});
},
child: Text(
_controller.value.isPlaying ? 'Pause' : 'Play',
),
),
],
);
}
}
위의 코드는 RaisedButton을 추가하여 동영상을 재생/일시정지할 수 있는 버튼을 만들었습니다. 버튼이 클릭되면 _controller
의 상태에 따라 재생 또는 일시정지 동작이 수행됩니다.
4. 앱 실행하기
이제 위에서 작성한 코드를 실행하여 동영상 재생 기능이 포함된 앱을 확인할 수 있습니다. 터미널에서 flutter run
명령어를 실행하여 앱을 실행합니다.
이렇게 Flutter에서 RaisedButton을 사용하여 동영상을 재생하는 방법을 알아보았습니다. VideoPlayer 패키지와 RaisedButton을 활용하여 Flutter 앱 안에서 동영상을 재생하는 기능을 구현할 수 있습니다.