play first track if currentTrack is null
This commit is contained in:
parent
7f06a7b96e
commit
8f220f800d
|
@ -124,6 +124,31 @@ class HomeProvider with ChangeNotifier {
|
|||
yt.close();
|
||||
}
|
||||
|
||||
Future nextTrack() async {
|
||||
if (currentTrack != null && currentTrack!.number < trackList.last.number) {
|
||||
currentTrack = trackList
|
||||
.firstWhere((element) => element.number == currentTrack!.number + 1);
|
||||
await playTrack(currentTrack!);
|
||||
}
|
||||
}
|
||||
|
||||
Future backTrack() async {
|
||||
if (currentTrack != null && currentTrack!.number > 1) {
|
||||
currentTrack = trackList
|
||||
.firstWhere((element) => element.number == currentTrack!.number - 1);
|
||||
await playTrack(currentTrack!);
|
||||
}
|
||||
}
|
||||
|
||||
void resumePlay() {
|
||||
if (currentTrack == null) {
|
||||
currentTrack = trackList.first;
|
||||
playTrack(currentTrack!);
|
||||
} else {
|
||||
player.state.name == 'playing' ? player.pause() : player.resume();
|
||||
}
|
||||
}
|
||||
|
||||
List<DropdownMenuItem<String>> get radioList {
|
||||
List<DropdownMenuItem<String>> menuItems = [
|
||||
const DropdownMenuItem(value: "fip", child: Text("FIP")),
|
||||
|
|
|
@ -30,33 +30,23 @@ class _HomeScreenState extends State<HomeScreen> {
|
|||
autofocus: true,
|
||||
focusNode: FocusNode(),
|
||||
onKey: (RawKeyEvent event) {
|
||||
log.d(event.data.logicalKey.keyId);
|
||||
// log.d(event.data.logicalKey.keyId);
|
||||
if (event.runtimeType == RawKeyDownEvent) //Enter Key ID from keyboard
|
||||
{
|
||||
switch (event.data.logicalKey.keyId) {
|
||||
case 32:
|
||||
case 112:
|
||||
case 4294969861:
|
||||
hp.player.state.name == 'playing'
|
||||
? hp.player.pause()
|
||||
: hp.player.resume();
|
||||
hp.resumePlay();
|
||||
break;
|
||||
case 110:
|
||||
case 94489280688:
|
||||
if (hp.currentTrack != null &&
|
||||
hp.currentTrack!.number < hp.trackList.last.number) {
|
||||
hp.currentTrack = hp.trackList.firstWhere(
|
||||
(element) => element.number == hp.currentTrack!.number + 1);
|
||||
hp.playTrack(hp.currentTrack!);
|
||||
}
|
||||
hp.nextTrack();
|
||||
break;
|
||||
case 98:
|
||||
case 94489280689:
|
||||
if (hp.currentTrack != null && hp.currentTrack!.number > 1) {
|
||||
hp.currentTrack = hp.trackList.firstWhere(
|
||||
(element) => element.number == hp.currentTrack!.number - 1);
|
||||
hp.playTrack(hp.currentTrack!);
|
||||
}
|
||||
hp.backTrack();
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -22,21 +22,13 @@ class PlayerControls extends StatelessWidget {
|
|||
icon:
|
||||
Icon(Icons.skip_previous, color: Colors.grey[500], size: 32),
|
||||
onPressed: () {
|
||||
if (hp.currentTrack != null && hp.currentTrack!.number > 1) {
|
||||
hp.currentTrack = hp.trackList.firstWhere((element) =>
|
||||
element.number == hp.currentTrack!.number - 1);
|
||||
hp.playTrack(hp.currentTrack!);
|
||||
}
|
||||
hp.backTrack();
|
||||
}),
|
||||
]),
|
||||
const SizedBox(width: 1),
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
hp.player.state.name == 'playing'
|
||||
? hp.player.pause()
|
||||
: hp.player.resume();
|
||||
|
||||
// playerProvider.reload();
|
||||
hp.resumePlay();
|
||||
},
|
||||
style: ElevatedButton.styleFrom(
|
||||
foregroundColor: Colors.grey[900],
|
||||
|
@ -56,12 +48,7 @@ class PlayerControls extends StatelessWidget {
|
|||
padding: const EdgeInsets.all(0),
|
||||
icon: Icon(Icons.skip_next, color: Colors.grey[500], size: 32),
|
||||
onPressed: () {
|
||||
if (hp.currentTrack != null &&
|
||||
hp.currentTrack!.number < hp.trackList.last.number) {
|
||||
hp.currentTrack = hp.trackList.firstWhere((element) =>
|
||||
element.number == hp.currentTrack!.number + 1);
|
||||
hp.playTrack(hp.currentTrack!);
|
||||
}
|
||||
hp.nextTrack();
|
||||
}),
|
||||
// const SizedBox(height: 7),
|
||||
]),
|
||||
|
|
Loading…
Reference in New Issue