[flutter] carousel_slider를 사용하여 음악 플레이어 슬라이더 만들기

music_player

Flutter에서 carousel_slider는 이미지나 컨텐츠를 슬라이드 형태로 보여주는 위젯입니다. 이번 예제에서는 carousel_slider를 사용하여 음악 플레이어 슬라이더를 만들어보겠습니다.

먼저, carousel_slider 패키지를 프로젝트에 추가해주세요. pubspec.yaml 파일에 다음 코드를 추가합니다:

dependencies:
  carousel_slider: ^3.0.0

패키지를 추가한 후 flutter pub get 명령을 실행하여 패키지를 가져옵니다.

2. 음악 플레이어 슬라이더 구성하기

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

class MusicPlayerSlider extends StatefulWidget {
  @override
  _MusicPlayerSliderState createState() => _MusicPlayerSliderState();
}

class _MusicPlayerSliderState extends State<MusicPlayerSlider> {
  List<String> songs = [
    'song1.mp3',
    'song2.mp3',
    'song3.mp3',
    // 여러 개의 음악 파일 경로를 추가해주세요
  ];

  int currentIndex = 0;

  @override
  Widget build(BuildContext context) {
    return CarouselSlider(
      options: CarouselOptions(
        height: MediaQuery.of(context).size.height * 0.4,
        enableInfiniteScroll: false,
        onPageChanged: (index, _) {
          setState(() {
            currentIndex = index;
          });
        },
      ),
      items: songs
          .map((song) => Container(
                child: Center(
                  child: Text(
                    song,
                    style: TextStyle(fontSize: 32),
                  ),
                ),
              ))
          .toList(),
    );
  }
}

위 코드에서는 MusicPlayerSlider라는 StatefulWidget을 정의하였습니다. songs 리스트에는 음악 파일의 경로를 추가합니다. currentIndex 변수는 현재 선택된 슬라이더의 인덱스를 저장하기 위한 변수입니다.

build 메소드에서는 CarouselSlider 위젯을 구성하고, options 속성을 사용하여 슬라이더의 높이를 설정하고, enableInfiniteScroll을 false로 설정하여 무한 스크롤을 비활성화합니다. onPageChanged 콜백 함수에서는 현재 인덱스를 업데이트하여 선택된 슬라이더를 추적합니다.

items 속성에서는 songs 리스트를 map 함수를 사용하여 슬라이더의 내용으로 구성합니다. 각 슬라이더는 Container 위젯에 Center 위젯과 함께 음악 파일의 경로를 텍스트로 표시합니다.

3. 음악 플레이어 슬라이더 사용하기

import 'package:flutter/material.dart';

import 'music_player_slider.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Music Player Slider',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Music Player Slider Example'),
        ),
        body: Center(
          child: MusicPlayerSlider(),
        ),
      ),
    );
  }
}

main.dart 파일에서는 MyApp 위젯을 정의합니다. MusicPlayerSlider 위젯을 body 속성에 추가하여 슬라이더를 화면에 표시합니다.

결론

위에서 설명한 단계를 따라 음악 플레이어 슬라이더를 만들 수 있습니다. carousel_slider 패키지를 사용하여 Flutter 앱에 다양한 슬라이더를 구현할 수 있으니, 필요한 경우에는 다양한 컨텐츠와 스타일을 추가해보세요.