12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import 'package:assets_audio_player/assets_audio_player.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter/painting.dart';
- class PlayingControls extends StatelessWidget {
- final bool isPlaying;
- final LoopMode loopMode;
- final bool isPlaylist;
- final Function() onPrevious;
- final Function() onPlay;
- final Function() onNext;
- final Function() toggleLoop;
- final Function() onStop;
- PlayingControls({
- @required this.isPlaying,
- this.isPlaylist = false,
- this.loopMode,
- this.toggleLoop,
- this.onPrevious,
- @required this.onPlay,
- this.onNext,
- this.onStop,
- });
- Widget _loopIcon(BuildContext context) {
- final iconSize = 24.0;
- if( loopMode == LoopMode.none) {
- return Icon(Icons.loop,size: iconSize,color: Colors.white,);
- } else if(loopMode == LoopMode.playlist) {
- return Icon(Icons.loop,size: iconSize,color: Colors.white,);
- } else {
- return Stack(
- alignment: Alignment.center,
- children: [
- Icon(Icons.loop,size: iconSize,color: Colors.white,),
- Center(
- child: Text('1',style: TextStyle(fontSize: 9,fontWeight: FontWeight.bold,color: Colors.white),),
- )
- ],
- );
- }
- return Radio(
- value: LoopMode.playlist,
- groupValue: this.loopMode,
- onChanged: (newValue) {
- toggleLoop();
- }
- );
- }
- @override
- Widget build(BuildContext context) {
- return Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- GestureDetector(
- onTap: (){
- toggleLoop();
- },
- child: _loopIcon(context),
- ),
- SizedBox(width: 10,),
- IconButton(
- icon: Icon(isPlaying ? Icons.pause : Icons.play_arrow,size: 24,color: Colors.white,),
- onPressed: this.onPlay
- ),
- if( onStop != null )
- IconButton(
- icon: Icon(Icons.stop,size: 24,color: Colors.white,),
- onPressed: this.onStop
- )
- ],
- );
- }
- }
|