bugfixed first played playlist/track doesn't play

This commit is contained in:
Kingkor Roy Tirtho 2022-03-13 15:08:55 +06:00
parent 932462d773
commit 39a92a56f3
4 changed files with 36 additions and 22 deletions

BIN
assets/warmer.mp3 Normal file

Binary file not shown.

View File

@ -33,6 +33,16 @@ class Player extends HookConsumerWidget {
final AsyncSnapshot<SharedPreferences?> localStorage =
useFuture(future, initialData: null);
useEffect(() {
/// warm up the audio player before playing actual audio
/// It's for resolving unresolved issue related to just_audio's
/// [disposeAllPlayers] method which is throwing
/// [UnimplementedException] in the [PlatformInterface]
/// implementation
player.setAsset("assets/warmer.mp3");
return null;
}, []);
useEffect(() {
if (localStorage.hasData) {
_volume.value = localStorage.data?.getDouble(LocalStorageKeys.volume) ??

View File

@ -1,5 +1,3 @@
import 'dart:math';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
@ -52,7 +50,9 @@ class PlayerView extends HookConsumerWidget {
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
Padding(
padding: const EdgeInsets.all(10),
child: Column(
children: [
Text(
currentTrack?.name ?? "Not playing",
@ -72,6 +72,7 @@ class PlayerView extends HookConsumerWidget {
),
],
),
),
HookBuilder(builder: (context) {
final ticker = useSingleTickerProvider();
final controller = useAnimationController(

View File

@ -224,7 +224,10 @@ class Playback extends ChangeNotifier {
final ytTrack = await toYoutubeTrack(youtube, track);
if (setTrackUriById(track.id!, ytTrack.uri!)) {
await player
.setAudioSource(AudioSource.uri(Uri.parse(ytTrack.uri!)))
.setAudioSource(
AudioSource.uri(Uri.parse(ytTrack.uri!)),
preload: true,
)
.then((value) {
_currentTrack = track;
notifyListeners();