From 561a583cd722f709f63e4cff29ef2e5e96ffb3e2 Mon Sep 17 00:00:00 2001 From: rang <378694192@qq.com> Date: Sun, 30 Nov 2025 00:56:16 +0800 Subject: [PATCH] 123 --- .../player/core/audiobook_player.dart | 30 +++++++++++-------- .../player/providers/audiobook_player.dart | 2 ++ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/lib/features/player/core/audiobook_player.dart b/lib/features/player/core/audiobook_player.dart index 37c2d8f..127e88d 100644 --- a/lib/features/player/core/audiobook_player.dart +++ b/lib/features/player/core/audiobook_player.dart @@ -11,6 +11,7 @@ import 'package:shelfsdk/audiobookshelf_api.dart'; import 'package:vaani/features/player/core/player_status.dart' as core; import 'package:vaani/features/player/providers/player_status_provider.dart'; import 'package:vaani/shared/extensions/chapter.dart'; +import 'package:vaani/shared/extensions/model_conversions.dart'; // add a small offset so the display does not show the previous chapter for a split second final offset = Duration(milliseconds: 10); @@ -66,21 +67,24 @@ class AbsAudioHandler extends BaseAudioHandler with QueueHandler, SeekHandler { ); } - playMediaItem( - MediaItem( - id: playbackSession.libraryItemId, - album: playbackSession.mediaMetadata.title, - title: playbackSession.displayTitle, - displaySubtitle: playbackSession.mediaType == MediaType.book - ? (playbackSession.mediaMetadata as BookMetadata).subtitle - : null, - duration: playbackSession.duration, - artUri: Uri.parse( - '$baseUrl/api/items/${playbackSession.libraryItemId}/cover?token=$token', - ), + final track = playbackSession.findTrackAtTime(playbackSession.currentTime); + + final item = MediaItem( + id: playbackSession.libraryItemId, + album: playbackSession.mediaMetadata.title, + artist: playbackSession.displayAuthor, + title: playbackSession.displayTitle, + displayTitle: playbackSession.displayTitle, + displaySubtitle: playbackSession.mediaType == MediaType.book + ? playbackSession.mediaMetadata.asBookMetadata.subtitle + : null, + displayDescription: "测试描述", + duration: track.duration, + artUri: Uri.parse( + '$baseUrl/api/items/${playbackSession.libraryItemId}/cover?token=$token', ), ); - final track = playbackSession.findTrackAtTime(playbackSession.currentTime); + await playMediaItem(item); final index = playbackSession.audioTracks.indexOf(track); await _player.setAudioSources( diff --git a/lib/features/player/providers/audiobook_player.dart b/lib/features/player/providers/audiobook_player.dart index 955b9cd..981dd74 100644 --- a/lib/features/player/providers/audiobook_player.dart +++ b/lib/features/player/providers/audiobook_player.dart @@ -33,6 +33,8 @@ Future audioHandlerInit(Ref ref) async { androidStopForegroundOnPause: false, androidNotificationIcon: 'drawable/ic_stat_logo', preloadArtwork: true, + // fastForwardInterval: Duration(seconds: 20), + // rewindInterval: Duration(seconds: 20), ), ); return audioService;