Audio service

This commit is contained in:
2025-12-16 23:05:27 +08:00
parent 2c56de7b06
commit 29edbfbb8a
12 changed files with 362 additions and 31 deletions

View File

@@ -4,7 +4,6 @@ import 'package:groovybox/data/db.dart';
import 'package:groovybox/data/playlist_repository.dart';
import 'package:groovybox/providers/audio_provider.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:media_kit/media_kit.dart' hide Track;
class AlbumDetailScreen extends HookConsumerWidget {
final AlbumData album;
@@ -102,8 +101,7 @@ class AlbumDetailScreen extends HookConsumerWidget {
void _playAlbum(WidgetRef ref, List<Track> tracks, {int initialIndex = 0}) {
final audioHandler = ref.read(audioHandlerProvider);
final medias = tracks.map((t) => Media(t.path)).toList();
audioHandler.openPlaylist(medias, initialIndex: initialIndex);
audioHandler.playTracks(tracks, initialIndex: initialIndex);
}
String _formatDuration(int? durationMs) {

View File

@@ -300,8 +300,7 @@ class LibraryScreen extends HookConsumerWidget {
),
onTap: () {
final audio = ref.read(audioHandlerProvider);
audio.setSource(track.path);
audio.play();
audio.playTrack(track);
},
onLongPress: () {
// Enter selection mode

View File

@@ -3,7 +3,6 @@ import 'package:groovybox/data/db.dart';
import 'package:groovybox/data/playlist_repository.dart';
import 'package:groovybox/providers/audio_provider.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:media_kit/media_kit.dart' hide Track, Playlist;
class PlaylistDetailScreen extends HookConsumerWidget {
final Playlist playlist;
@@ -114,8 +113,7 @@ class PlaylistDetailScreen extends HookConsumerWidget {
int initialIndex = 0,
}) {
final audioHandler = ref.read(audioHandlerProvider);
final medias = tracks.map((t) => Media(t.path)).toList();
audioHandler.openPlaylist(medias, initialIndex: initialIndex);
audioHandler.playTracks(tracks, initialIndex: initialIndex);
}
String _formatDuration(int? durationMs) {