[flutter] BottomSheet에서 동영상 재생하기

이번 포스트에서는 Flutter 앱에서 BottomSheet에 동영상을 재생하는 방법에 대해 알아보겠습니다.

1. BottomSheet 생성하기

먼저, BottomSheet를 만들고 원하는 위치에서 화면에 표시합니다.

void _showBottomSheet(BuildContext context) {
  showModalBottomSheet(
    context: context,
    builder: (BuildContext context) {
      return Container(
        height: 200,
        child: // 동영상을 재생하는 위젯 추가
      );
    },
  );
}

2. 동영상 재생하기

동영상을 재생하려면 video_player 패키지를 사용해야 합니다. 프로젝트의 pubspec.yaml 파일에 다음을 추가하여 패키지를 가져옵니다.

dependencies:
  video_player: ^2.1.11

그리고 패키지를 가져온 후, 아래와 같이 사용하여 동영상을 재생할 수 있습니다.

import 'package:video_player/video_player.dart';

class VideoPlayerWidget extends StatefulWidget {
  final String videoUrl;

  VideoPlayerWidget({required this.videoUrl});

  @override
  _VideoPlayerWidgetState createState() => _VideoPlayerWidgetState();
}

class _VideoPlayerWidgetState extends State<VideoPlayerWidget> {
  late VideoPlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller = VideoPlayerController.network(widget.videoUrl)
      ..initialize().then((_) {
        // 동영상이 준비되면 재생 시작
        _controller.play();
      });
  }

  @override
  Widget build(BuildContext context) {
    return AspectRatio(
      aspectRatio: _controller.value.aspectRatio,
      child: VideoPlayer(_controller),
    );
  }

  @override
  void dispose() {
    super.dispose();
    _controller.dispose();
  }
}

3. BottomSheet에 동영상 재생 위젯 추가하기

이제 BottomSheet에 동영상을 재생하는 위젯을 추가하겠습니다.

void _showBottomSheet(BuildContext context) {
  showModalBottomSheet(
    context: context,
    builder: (BuildContext context) {
      return Container(
        height: 200,
        child: VideoPlayerWidget(videoUrl: '동영상 URL'),
      );
    },
  );
}

이제 Flutter 앱에서 BottomSheet에 동영상을 재생할 수 있게 되었습니다. 이를 통해 사용자에게 편의성을 제공할 수 있습니다.

더 자세한 내용은 video_player 패키지의 공식 문서를 참고해 주세요.

참고: 이 예제에서는 네트워크 동영상을 사용하였으나, 로컬 동영상 파일 또한 비슷한 방식으로 재생할 수 있습니다.

이상으로 Flutter에서 BottomSheet에서 동영상을 재생하는 방법에 대해 알아보았습니다. 부디 도움이 되길 바라며, 더 궁금한 점이 있다면 언제든지 물어주세요!