fix: 媒体通知进度条未按预期停止

This commit is contained in:
guozhigq
2024-03-07 23:35:39 +08:00
parent ed0b43eff1
commit ab24da5f55
3 changed files with 10 additions and 8 deletions

View File

@ -277,8 +277,7 @@ class PlPlayerController {
danmakuDurationVal = danmakuDurationVal =
localCache.get(LocalCacheKey.danmakuDuration, defaultValue: 4.0); localCache.get(LocalCacheKey.danmakuDuration, defaultValue: 4.0);
// 描边粗细 // 描边粗细
strokeWidth = strokeWidth = localCache.get(LocalCacheKey.strokeWidth, defaultValue: 1.5);
localCache.get(LocalCacheKey.strokeWidth, defaultValue: 1.5);
playRepeat = PlayRepeat.values.toList().firstWhere( playRepeat = PlayRepeat.values.toList().firstWhere(
(e) => (e) =>
e.value == e.value ==
@ -535,8 +534,10 @@ class PlPlayerController {
if (event) { if (event) {
playerStatus.status.value = PlayerStatus.playing; playerStatus.status.value = PlayerStatus.playing;
} else { } else {
// playerStatus.status.value = PlayerStatus.paused; playerStatus.status.value = PlayerStatus.paused;
} }
videoPlayerServiceHandler.onStatusChange(
playerStatus.status.value, isBuffering.value);
/// 触发回调事件 /// 触发回调事件
for (var element in _statusListeners) { for (var element in _statusListeners) {

View File

@ -26,6 +26,7 @@ class VideoPlayerServiceHandler extends BaseAudioHandler with SeekHandler {
static final List<MediaItem> _item = []; static final List<MediaItem> _item = [];
Box setting = GStrorage.setting; Box setting = GStrorage.setting;
bool enableBackgroundPlay = false; bool enableBackgroundPlay = false;
PlPlayerController player = PlPlayerController.getInstance();
VideoPlayerServiceHandler() { VideoPlayerServiceHandler() {
revalidateSetting(); revalidateSetting();
@ -38,12 +39,12 @@ class VideoPlayerServiceHandler extends BaseAudioHandler with SeekHandler {
@override @override
Future<void> play() async { Future<void> play() async {
PlPlayerController.getInstance().play(); player.play();
} }
@override @override
Future<void> pause() async { Future<void> pause() async {
PlPlayerController.getInstance().pause(); player.pause();
} }
@override @override
@ -51,7 +52,7 @@ class VideoPlayerServiceHandler extends BaseAudioHandler with SeekHandler {
playbackState.add(playbackState.value.copyWith( playbackState.add(playbackState.value.copyWith(
updatePosition: position, updatePosition: position,
)); ));
await PlPlayerController.getInstance().seekTo(position); await player.seekTo(position);
} }
Future<void> setMediaItem(MediaItem newMediaItem) async { Future<void> setMediaItem(MediaItem newMediaItem) async {

View File

@ -20,7 +20,7 @@ class AudioSessionHandler {
session.interruptionEventStream.listen((event) { session.interruptionEventStream.listen((event) {
final player = PlPlayerController.getInstance(); final player = PlPlayerController.getInstance();
if (event.begin) { if (event.begin) {
if (player.playerStatus != PlayerStatus.playing) return; if (!player.playerStatus.playing) return;
switch (event.type) { switch (event.type) {
case AudioInterruptionType.duck: case AudioInterruptionType.duck:
player.setVolume(player.volume.value * 0.5); player.setVolume(player.volume.value * 0.5);
@ -52,7 +52,7 @@ class AudioSessionHandler {
// 耳机拔出暂停 // 耳机拔出暂停
session.becomingNoisyEventStream.listen((_) { session.becomingNoisyEventStream.listen((_) {
final player = PlPlayerController.getInstance(); final player = PlPlayerController.getInstance();
if (player.playerStatus == PlayerStatus.playing) { if (player.playerStatus.playing) {
player.pause(); player.pause();
} }
}); });