[flutter] 플러터 Slider와 연동하여 음악 플레이어의 볼륨을 조정하는 방법은?
import 'package:flutter/material.dart';
import 'package:just_audio/just_audio.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyAudioPlayer(),
);
}
}
class MyAudioPlayer extends StatefulWidget {
@override
_MyAudioPlayerState createState() => _MyAudioPlayerState();
}
class _MyAudioPlayerState extends State<MyAudioPlayer> {
final AudioPlayer _audioPlayer = AudioPlayer();
@override
void initState() {
super.initState();
_audioPlayer.setUrl('your_audio_file_url.mp3');
_audioPlayer.setVolume(0.5); // 초기 볼륨 설정
}
@override
void dispose() {
_audioPlayer.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Audio Player'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
StreamBuilder<Duration?>(
stream: _audioPlayer.durationStream,
builder: (context, snapshot) {
final duration = snapshot.data ?? Duration.zero;
return Text('${duration.inSeconds} seconds');
},
),
StreamBuilder<Duration?>(
stream: _audioPlayer.positionStream,
builder: (context, snapshot) {
final position = snapshot.data ?? Duration.zero;
return Text('${position.inSeconds} seconds');
},
),
Slider(
value: _audioPlayer.volume, // 현재 볼륨
onChanged: (value) {
setState(() {
_audioPlayer.setVolume(value);
});
},
min: 0.0,
max: 1.0,
divisions: 10,
),
],
),
),
);
}
}
이 예제에서는 Just Audio 패키지를 사용하여 AudioPlayer를 생성하고, Slider를 통해 볼륨을 조절합니다. 또한, 상태를 변경할 때마다 setVolume을 사용하여 볼륨을 조정합니다. 코드를 실행하면 음악 플레이어의 볼륨을 조절할 수 있는 간단한 앱을 확인할 수 있습니다.
다음은 사용된 패키지에 대한 참조입니다: Just Audio 패키지