import 'package:flutter/material.dart';
import 'package:liftmanager/res/gaps.dart';
import 'package:liftmanager/net/api_service.dart';
import 'package:liftmanager/utils/toast.dart';
import 'package:liftmanager/widgets/app_bar.dart';
import 'package:liftmanager/internal/search/search_router.dart';
import 'package:liftmanager/widgets/app_search_bar.dart';
import 'package:liftmanager/res/resources.dart';
import 'package:liftmanager/routers/fluro_navigator.dart';
import 'package:liftmanager/widgets/load_image.dart';
import 'package:liftmanager/widgets/selected_image.dart';
import 'package:image_picker/image_picker.dart';
import 'package:liftmanager/internal/bbs/bbs_router.dart';
import 'dart:io';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:video_player/video_player.dart';
import 'package:chewie/chewie.dart';
import 'package:liftmanager/internal/bbs/model/video_detail.dart';
import 'package:liftmanager/utils/url.dart';
import 'package:liftmanager/utils/time_format.dart';
import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:liftmanager/internal/wode/wode_router.dart';
import 'package:liftmanager/utils/utils.dart';
import 'package:flutter/services.dart';
import 'package:orientation/orientation.dart';
import 'package:image/image.dart' as I;
import 'dart:math';
import 'dart:typed_data';

class VideoDetail extends StatefulWidget {
  VideoDetail(this.id);

  final String id;

  @override
  State<StatefulWidget> createState() {
    return VideoDetailState();
  }
}

class VideoDetailState extends State<VideoDetail> {
  @override
  void initState() {
    super.initState();
    getVideoDetail();
  }
  // final FijkPlayer player = FijkPlayer();
  bool _hasData = false;
  VideoDetailModel detailObj;
  VideoPlayerController _controller;

  Future getVideoDetail() async {
    await NewApiService().getVideoDetail(int.parse(widget.id), 1,
        onSuccess: (res) async {
      if (res != null) {
        _hasData = true;
        detailObj = res;
        _controller = VideoPlayerController.network(
                                        Utils.getImagePath(detailObj.url) 
                                        // imgFontUrl + detailObj.url
                                        );
        // player.setDataSource(detailObj.url, autoPlay: false,showCover: true);
        // player.setOption(FijkOption.playerCategory, "cover-after-prepared", 1);
        // var imageData = await player.takeSnapShot();
        // Image.memory(imageData);
        // MemoryImage(imageData);
        // I.Image _img = I.decodeImage(imageData);
        // _img = I.encodeJpg(_img) as I.Image;
        // String s = new String.fromCharCodes(imageData);
        // var outputAsUint8List = new Uint8List.fromList(s.codeUnits);
        // print(123456);
        // print(outputAsUint8List);
        // print(1234561);
        setState(() {});
      }
    }, onError: (code, msg) {
      toasts(msg);
    });
  }

  @override
  void dispose() {
    _controller.pause();
    _controller.dispose();
    // SystemChrome.setPreferredOrientations([
    //   DeviceOrientation.portraitUp,
    // ]);
    // player.release();
    // OrientationPlugin.forceOrientation(DeviceOrientation.portraitUp);
    super.dispose();
  }


  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    double height = MediaQuery.of(context).size.height;
    if(width > height){
      // SystemChrome.setPreferredOrientations([
      //   DeviceOrientation.portraitUp,
      // ]);
      OrientationPlugin.forceOrientation(DeviceOrientation.portraitUp);
    }
    return Scaffold(
      resizeToAvoidBottomPadding: false, //不让键盘弹上去
      appBar: MyAppBar(
        centerTitle: "视频详情",
        actions: <Widget>[
                _hasData && detailObj.checkFlag==0?FlatButton(
                  child: Text(
                    "编辑",
                    style: TextStyle(
                        color: Colors.white, fontSize: ScreenUtil().setSp(15)),
                  ),
                  textColor: Colours.dark_text,
                  highlightColor: Colors.transparent,
                  onPressed: () {
                    // NavigatorUtils.push(context, WodeRouter.videoUpload);
                    NavigatorUtils.push(context, "${WodeRouter.videoUpload}?id=${widget.id}");
                  },
                ):Container(child: null,)
              ],
      ),
      body: _hasData
          ? Stack(
              children: <Widget>[
                Container(
                    child: ListView(children: <Widget>[
                  Column(
                    mainAxisAlignment: MainAxisAlignment.start,
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: <Widget>[
                      Container(
                          padding: EdgeInsets.only(
                              left: ScreenUtil().setWidth(15),
                              right: ScreenUtil().setWidth(15),
                              top: ScreenUtil().setWidth(15)),
                          child: ClipRRect(
                            borderRadius: BorderRadius.circular(5),
                            child: new Chewie(
                              controller: ChewieController(
                                videoPlayerController:
                                    _controller,
                                aspectRatio: 3 / 2,
                                autoPlay: false,
                                looping: true,
                                showControls: true,
                                deviceOrientationsAfterFullScreen:[DeviceOrientation.portraitUp],
                                // 占位图
                                // placeholder: Image.network(
                                //     imgFontUrl+detailObj.cover,
                                //     fit: BoxFit.contain,

                                //   ),

                                // 是否在 UI 构建的时候就加载视频
                                autoInitialize: true,

                                // 拖动条样式颜色
                                materialProgressColors:
                                    new ChewieProgressColors(
                                  playedColor: Colors.red,
                                  handleColor: Colors.blue,
                                  backgroundColor: Colors.grey,
                                  bufferedColor: Colors.lightGreen,
                                ),
                              ),
                            ),
                          )),
                      Container(
                        width: width,
                        padding: EdgeInsets.only(
                            left: ScreenUtil().setWidth(15),
                            right: ScreenUtil().setWidth(15),
                            top: ScreenUtil().setWidth(10),
                            bottom: ScreenUtil().setWidth(10)),
                        decoration: BoxDecoration(
                          border: Border(
                            bottom: BorderSide(width: 0.5, color: Colours.line),
                          ),
                        ),
                        child: Column(
                            mainAxisAlignment: MainAxisAlignment.start,
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: <Widget>[
                              Text(
                                detailObj.title,
                                style: TextStyle(
                                    color: Color(0xff000000),
                                    fontSize: ScreenUtil().setSp(16)),
                                textAlign: TextAlign.start,
                              ),
                              Text(
                                detailObj.brandName,
                                style: TextStyle(
                                    color: Color(0xff666666),
                                    fontSize: ScreenUtil().setSp(14)),
                                textAlign: TextAlign.start,
                              ),
                            ]),
                      ),
                      Container(
                        padding: EdgeInsets.only(
                            left: ScreenUtil().setWidth(15),
                            top: ScreenUtil().setWidth(30),
                            bottom: ScreenUtil().setWidth(30)),
                        decoration: BoxDecoration(
                          border: Border(
                            bottom: BorderSide(width: 0.5, color: Colours.line),
                          ),
                        ),
                        child: Row(
                          children: <Widget>[
                            Container(
                                child: ClipRRect(
                              borderRadius: BorderRadius.circular(
                                  ScreenUtil().setWidth(18)),
                              child: LoadNetworkImage(
                                detailObj.avatarUrl,
                                // fit: BoxFit.cover,
                                width: ScreenUtil().setWidth(36),
                                height: ScreenUtil().setWidth(36),
                              ),
                            )),
                            Container(
                              padding: EdgeInsets.only(left: 5),
                              child: Column(
                                crossAxisAlignment: CrossAxisAlignment.start,
                                children: <Widget>[
                                  Text(
                                    detailObj.nickname,
                                    style: TextStyle(
                                        fontSize: ScreenUtil().setSp(14),
                                        color: Color(0xff333333)),
                                  ),
                                  Text(
                                    DateUtils.instance.getFormartData(
                                        timeSamp: detailObj.createTime,
                                        format: "yyyy-MM-dd"),
                                    style: TextStyle(
                                        fontSize: ScreenUtil().setSp(12),
                                        color: Color(0xffaaaaaa)),
                                  ),
                                ],
                              ),
                            )
                          ],
                        ),
                      ),
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        mainAxisAlignment: MainAxisAlignment.start,
                        children: <Widget>[
                          Container(
                            padding: EdgeInsets.only(
                                left: ScreenUtil().setWidth(15),
                                top: ScreenUtil().setWidth(10),
                                bottom: ScreenUtil().setWidth(5)),
                            child: Text(
                              "视频简介",
                              style: TextStyle(
                                color: Color(0xff222222),
                                fontSize: ScreenUtil().setSp(16),
                              ),
                              textAlign: TextAlign.left,
                            ),
                          ),
                          Container(
                            padding: EdgeInsets.only(
                                left: ScreenUtil().setWidth(15),
                                right: ScreenUtil().setWidth(15),
                                top: ScreenUtil().setWidth(10),
                                bottom: ScreenUtil().setWidth(90)),
                            child: Text(
                              detailObj.descr,
                              style: TextStyle(
                                color: Color(0xff222222),
                                fontSize: ScreenUtil().setSp(14),
                              ),
                              textAlign: TextAlign.left,
                            ),
                          ),
                        ],
                      ),
                      detailObj.checkFlag==0? Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        mainAxisAlignment: MainAxisAlignment.start,
                        children: <Widget>[
                          Container(
                            padding: EdgeInsets.only(
                                left: ScreenUtil().setWidth(15),
                                top: ScreenUtil().setWidth(10),
                                bottom: ScreenUtil().setWidth(5)),
                            child: Text(
                              "驳回原因",
                              style: TextStyle(
                                color: Color(0xff222222),
                                fontSize: ScreenUtil().setSp(16),
                              ),
                              textAlign: TextAlign.left,
                            ),
                          ),
                          Container(
                            padding: EdgeInsets.only(
                                left: ScreenUtil().setWidth(15),
                                right: ScreenUtil().setWidth(15),
                                top: ScreenUtil().setWidth(10),
                                bottom: ScreenUtil().setWidth(90)),
                            child: Text(
                              detailObj.checkComment,
                              style: TextStyle(
                                color: Color(0xff222222),
                                fontSize: ScreenUtil().setSp(14),
                              ),
                              textAlign: TextAlign.left,
                            ),
                          ),
                        ],
                      ):Container(child: null,),
                    ],
                  ),
                ])),
              ],
            )
          : Center(
              child: Text("正在加载..."),
            ),
    );
  }
}
