Das Beenden des Vollbildschirms von Video führt zu einer Statusleiste verstecktes Problem Ich verwende Chewie -ControlleAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Das Beenden des Vollbildschirms von Video führt zu einer Statusleiste verstecktes Problem Ich verwende Chewie -Controlle

Post by Anonymous »

Ich verwende Chewie- und Video -Controller in meiner App auf dem Video -Vollbild -Vollbildmodus. Beendenimport 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:frequency_app/core/constants/app_colors.dart';
import 'package:video_player/video_player.dart';
import 'package:chewie/chewie.dart';

/// **Video Player Controller Provider**
final videoPlayerControllerProvider = FutureProvider.autoDispose((ref) async {
final controller = VideoPlayerController.networkUrl(
Uri.parse('https://flutter.github.io/assets-for-ap ... os/bee.mp4'),
videoPlayerOptions: VideoPlayerOptions(
allowBackgroundPlayback: false,
mixWithOthers: true,
),
);

await controller.initialize();
// await controller.play();
controller.setLooping(true);

/// **Listener to track progress and buffering**
controller.addListener(() {
final videoValue = controller.value;
final currentPosition = videoValue.position.inMilliseconds;
final duration = videoValue.duration.inMilliseconds;

if (videoValue.isBuffering) {
print("Video is buffering...");
ref.read(isBufferingProvider.notifier).state = true;
} else if (videoValue.isPlaying) {
ref.read(isBufferingProvider.notifier).state = false;
}else {
ref.read(isBufferingProvider.notifier).state = false;
ref.read(playPauseProvider.notifier).resumeAfterBuffering(controller); // Resume video after buffering
}
ref.read(videoProgressProvider.notifier).state =
videoValue.duration.inMilliseconds > 0
? videoValue.position.inMilliseconds / videoValue.duration.inMilliseconds
: 0.0;

if (videoValue.isPlaying && currentPosition > 500 && currentPosition < duration) {
ref.read(isBufferingProvider.notifier).state = false;
}
if (!controller.value.isBuffering &&
!controller.value.isPlaying) {
controller.play();
}

final progress = duration > 0 ? currentPosition / duration : 0.0;
ref.read(videoProgressProvider.notifier).state = progress;
});

ref.onDispose(() {
controller.pause();
controller.dispose();
});

return controller;
});

/// **Chewie Controller Provider**
final chewieControllerProvider = FutureProvider.autoDispose((ref) async {
final videoController = await ref.watch(videoPlayerControllerProvider.future);
if (!videoController.value.isInitialized) {
await videoController.initialize();
}

final chewieController = ChewieController(
videoPlayerController: videoController,
autoPlay: false,
looping: true,
showControls: true,
showControlsOnInitialize: true,
aspectRatio: videoController.value.aspectRatio > 0 ? videoController.value.aspectRatio : 16 / 9,
allowFullScreen: true,
allowMuting: true,
allowPlaybackSpeedChanging: true,
customControls: CustomChewieControls(),
progressIndicatorDelay: Duration.zero,
);

ref.onDispose(() {
chewieController.dispose();
});

return chewieController;
});

class CustomChewieControls extends ConsumerWidget {
const CustomChewieControls({super.key});

@override
Widget build(BuildContext context, WidgetRef ref) {
final videoController = ChewieController.of(context).videoPlayerController;
final isPlaying = ref.watch(playPauseProvider);
final isMuted = ref.watch(muteProvider);

return Stack(
children: [
// ✅ Background Visibility
Positioned.fill(
child: Container(color: Colors.black.withOpacity(0.3)),
),

// ✅ Controls (Fullscreen, Mute, Seek, Play/Pause)
Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: const EdgeInsets.only(bottom: 10.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
IconButton(
icon: Icon(Icons.fullscreen, color: Colors.white),
onPressed: () => ChewieController.of(context).enterFullScreen(),
),
],
),
),
),
],
);
}
}
< /code>
Ich habe versucht, den System UI -Stil beim Vollbild -Exit restaurieren zu>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post