play_video.dart 2.03 KB
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';

import 'package:one_key/widgets/system_app_bar.dart';
import 'package:video_player/video_player.dart';

class PlayVideoPage extends StatefulWidget {
  final String? url;
  PlayVideoPage({Key? key, this.url}) : super(key: key);

  @override
  _PlayVideoPageState createState() => _PlayVideoPageState();
}

class _PlayVideoPageState extends State<PlayVideoPage> {
  // IjkMediaController ijkMediaController = IjkMediaController();

  late VideoPlayerController _controller;
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    // ijkMediaController.setNetworkDataSource(
    //   widget.url,
    //   autoPlay: true,
    // );
    _controller = VideoPlayerController.network(widget.url!)
      ..initialize().then((_) {
        setState(() {});
      });
    _controller.play();
    _controller.setLooping(true);
  }

  @override
  void dispose() {
    super.dispose();
    _controller.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: SystemAppBar(
          '',
          onTap: () {
            if (Navigator.canPop(context)) {
              Navigator.pop(context);
            }
          },
        ),
        // body: IjkPlayer(mediaController: ijkMediaController),
        body: _controller.value.isInitialized
            ? Center(
                // child: AspectRatio(
                // aspectRatio: _controller.value.aspectRatio,
                child: 
                VideoPlayer(_controller),
              // )
              )
            : Container(
                width: double.infinity,
                height: ScreenUtil().screenHeight,
                color: Colors.black,
                child: UnconstrainedBox(
                  child: SizedBox(
                    width: ScreenUtil().setWidth(80),
                    height: ScreenUtil().setWidth(80),
                    child: CircularProgressIndicator(),
                  ),
                )));
  }
}