Flutter video_player Shown Meaningless Video Images in Emulator But It Can Seen On Real Device

16 Views Asked by At

My flutter version 3.19. I use chewie: ^1.7.5 and video_player: ^2.8.3 for playing a video in FlutteBut, the Android emulator shows meaningless video images on the phone screen.

When I opened the page of the video, it played but didn't look expected butterfly video and not heard sound of it.

Emulator shows / Expected

phone screen and expected

My video player screen dart file codes:

import 'package:chewie/chewie.dart';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';

class VideoScreen extends StatefulWidget {
  const VideoScreen({super.key});

  @override
  State<VideoScreen> createState() => _VideoScreenState();
}

class _VideoScreenState extends State<VideoScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Video Player"),
      ),
      body: const PlayerWidget(),
    );
  }
}

//----------PLAYER WIDGET SECTION

class PlayerWidget extends StatefulWidget {
  const PlayerWidget({super.key});

  @override
  State<PlayerWidget> createState() => _PlayerWidgetState();
}

class _PlayerWidgetState extends State<PlayerWidget> {
  late VideoPlayerController videoPlayerController;
  late ChewieController chewieController;
  bool isVideoInialized = false;

  Future initilizeVideo() async {
    videoPlayerController = VideoPlayerController.networkUrl(Uri.parse(
        'https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4'));

    await videoPlayerController.initialize();

    chewieController = ChewieController(
        videoPlayerController: videoPlayerController,
        autoPlay: true,
        looping: true);

    videoPlayerController.initialize().then((_) => setState(() {
          isVideoInialized = true;
        }));
  }

  @override
  void initState() {
    super.initState();
    // videoPlayerController = VideoPlayerController.networkUrl(Uri.parse(
    //     'https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4'));

    // chewieController = ChewieController(
    //     videoPlayerController: videoPlayerController,
    //     autoPlay: true,
    //     looping: true);

    // videoPlayerController.initialize().then((_) => setState(() {
    //       isVideoInialized = true;
    //     }));

    initilizeVideo();
  }

  @override
  Widget build(BuildContext context) {
    if (isVideoInialized) {
      return AspectRatio(
        aspectRatio: videoPlayerController.value.aspectRatio,
        child: Chewie(controller: chewieController),
      );
    } else {
      return const CircularProgressIndicator();
    }
  }

  @override
  void dispose() {
    videoPlayerController.dispose();
    chewieController.dispose();
    super.dispose();
  }
}

UPDATED INFORMATION:

It looks like the emulator has a problem.

enter image description here

0

There are 0 best solutions below