播放逻辑修改

This commit is contained in:
rang 2025-12-08 23:46:43 +08:00
parent 420438c0df
commit 50a27fdf67
33 changed files with 788 additions and 761 deletions

View file

@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:vaani/features/player/providers/abs_provider.dart';
import 'package:vaani/features/player/providers/audiobook_player.dart';
import 'package:vaani/features/player/view/player_expanded.dart'
show pendingPlayerModals;
import 'package:vaani/features/player/view/widgets/playing_indicator_icon.dart';
@ -117,8 +116,8 @@ class ChapterSelectionModal extends HookConsumerWidget {
onTap: () {
Navigator.of(context).pop();
ref
.read(playerProvider)
.skipToChapter(chapter.id);
.read(absAudioPlayerProvider)
.switchChapter(chapter.id);
},
);
},

View file

@ -21,12 +21,12 @@ class AudiobookPlayerPlayPauseButton extends HookConsumerWidget {
);
}
Widget _getIcon(PlayerState playerState, BuildContext context) {
Widget _getIcon(AbsPlayerState playerState, BuildContext context) {
if (playerState.playing) {
return Icon(size: iconSize, Icons.pause);
} else {
switch (playerState.processingState) {
case ProcessingState.loading || ProcessingState.buffering:
case AbsProcessingState.loading || AbsProcessingState.buffering:
return CircularProgressIndicator();
default:
return Icon(size: iconSize, Icons.play_arrow);
@ -34,13 +34,13 @@ class AudiobookPlayerPlayPauseButton extends HookConsumerWidget {
}
}
void _actionButtonPressed(PlayerState playerState, WidgetRef ref) async {
void _actionButtonPressed(AbsPlayerState playerState, WidgetRef ref) async {
final player = ref.read(absAudioPlayerProvider);
if (playerState.playing) {
await player.pause();
} else {
switch (playerState.processingState) {
case ProcessingState.completed:
case AbsProcessingState.completed:
await player.seekInBook(const Duration(seconds: 0));
await player.play();
default:

View file

@ -4,7 +4,6 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:vaani/constants/sizes.dart';
import 'package:vaani/features/player/providers/abs_provider.dart';
import 'package:vaani/features/player/providers/audiobook_player.dart';
class AudiobookChapterProgressBar extends HookConsumerWidget {
const AudiobookChapterProgressBar({

View file

@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:list_wheel_scroll_view_nls/list_wheel_scroll_view_nls.dart';
import 'package:vaani/features/player/providers/audiobook_player.dart';
import 'package:vaani/features/player/providers/abs_provider.dart';
import 'package:vaani/features/settings/app_settings_provider.dart';
const double itemExtent = 25;
@ -22,7 +22,7 @@ class SpeedSelector extends HookConsumerWidget {
final appSettings = ref.watch(appSettingsProvider);
final playerSettings = appSettings.playerSettings;
final speeds = playerSettings.speedOptions;
final currentSpeed = ref.watch(playerProvider).player.speed;
final currentSpeed = ref.watch(absAudioPlayerProvider).speed;
final speedState = useState(currentSpeed);
// hook the onSpeedSelected function to the state