Youtube_player_flutter: [рдмрдЧ] рдкреВрд░реНрдгрд╕реНрдХреНрд░реАрди рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЬреВрди 2020  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sarbagyastha/youtube_player_flutter

рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рдлрд╝реБрд▓рд╕реНрдХреНрд░реАрди рдЪреАрдЬрд╝ред рдпрд╣ рд╕рд┐рд░реНрдл рдРрдк рдХреЗ рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдХреЛ рдШреБрдорд╛ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдРрдк рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рд▓реИрдВрдбрд╕реНрдХреЗрдк рд╣реИ рдЬрд┐рд╕рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИред рдЬрдм рд╣рдо рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рднреА рд╕рднреА рд╡рд┐рдЬреЗрдЯ рдРрдкрдмрд╛рд░ рдФрд░ рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯ рдХреА рддрд░рд╣ рдЫрд┐рдкреЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

_controller.value.isFullScreen рдПрдХ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдпрд╛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред

Screenshot 2020-06-30 at 5 06 05 PM

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╕ рдЕрдкрдиреЗ рдордЪрд╛рди рдХреЛ YoutubePlayerBuilder рдХреЗ рдиреАрдЪреЗ рд░рдЦреЗрдВ

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @ рдкреНрд░рд┐рдВрд╕рдЯреЗрдХред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдЬрдм рд╣рдо рдлреБрд▓рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдмреВрд▓рд┐рдпрди рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо рдлреБрд▓рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рдореИрдВ рдРрдкрдмрд╛рд░ рдХреЛ рд╢реВрдиреНрдп рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдлреБрд▓рд╕реНрдХреНрд░реАрди рдлреБрд▓рд╕реНрдХреНрд░реАрди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХ рдмрдЯрди рдкреНрд░реЗрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рд▓рдкреЙрдкрд╕реНрдХреЛрдк рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рд╛ред рдпрд╣рд╛рдБ рдореЗрд░реА рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рд╣реИред рдореБрдЭреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд▓рд╛рдЗрд╡ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

class LiveDetail extends StatefulWidget {
  final Live live;

  LiveDetail({
    Key key,
    <strong i="8">@required</strong> this.live,
  }) : super(key: key);

  <strong i="9">@override</strong>
  _LiveDetailState createState() => _LiveDetailState();
}

class _LiveDetailState extends State<LiveDetail> {
  YoutubePlayerController _controller;

  bool showAppBar = true;

  <strong i="10">@override</strong>
  void initState() {
    _controller = YoutubePlayerController(
      initialVideoId: widget.live.videoId,
      flags: YoutubePlayerFlags(autoPlay: true, isLive: widget.live.isLive, controlsVisibleAtStart: true),
    );
    super.initState();
  }

  Future<bool> _onWillPop() {
    if (_controller.value.isFullScreen) {
      _controller.toggleFullScreenMode();
    } else {
      Navigator.pop(context);
    }
  }

  <strong i="11">@override</strong>
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: _onWillPop,
      child: MaterialApp(
        title: 'Live',
        theme: ThemeData(primaryColor: Color(CustomColors.grena)),
        debugShowCheckedModeBanner: false,
        home: Scaffold(
            appBar: showAppBar
                ? AppBar(
                    title: Text(widget.live.title),
                    leading: new IconButton(
                      icon: new Icon(Icons.arrow_back),
                      onPressed: () {
                        Navigator.pop(context);
                      },
                    ),
                  )
                : null,
            body: Container(
              child: YoutubePlayerBuilder(
                player: YoutubePlayer(controller: _controller),
                builder: (context, player) {
                  return Column(
                    children: <Widget>[player],
                  );
                },
                onEnterFullScreen: () {
                  setState(() {
                    showAppBar = false;
                  });
                },
                onExitFullScreen: () {
                  setState(() {
                    showAppBar = true;
                  });
                },
              ),
            )),
      ),
    );
  }
}

рдмрд╕ рдЕрдкрдиреЗ рдордЪрд╛рди рдХреЛ YoutubePlayerBuilder рдХреЗ рдиреАрдЪреЗ рд░рдЦреЗрдВ

рдмрд╕ рдЕрдкрдиреЗ рдордЪрд╛рди рдХреЛ YoutubePlayerBuilder рдХреЗ рдиреАрдЪреЗ рд░рдЦреЗрдВ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдм рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓рд╛рдЗрд╡ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдХреНрд░реЙрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рдЦрд░рд╛рдм рд╣реЛ рдЧрдпрд╛ рд╣реИред

рд╣рд╛рдп @ рдкреНрд░рд┐рдВрд╕рдЯреЗрдХред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдЬрдм рд╣рдо рдлреБрд▓рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдмреВрд▓рд┐рдпрди рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо рдлреБрд▓рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рдореИрдВ рдРрдкрдмрд╛рд░ рдХреЛ рд╢реВрдиреНрдп рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдлреБрд▓рд╕реНрдХреНрд░реАрди рдлреБрд▓рд╕реНрдХреНрд░реАрди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХ рдмрдЯрди рдкреНрд░реЗрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рд▓рдкреЙрдкрд╕реНрдХреЛрдк рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рд╛ред рдпрд╣рд╛рдБ рдореЗрд░реА рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рд╣реИред рдореБрдЭреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд▓рд╛рдЗрд╡ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

class LiveDetail extends StatefulWidget {
  final Live live;

  LiveDetail({
    Key key,
    <strong i="9">@required</strong> this.live,
  }) : super(key: key);

  <strong i="10">@override</strong>
  _LiveDetailState createState() => _LiveDetailState();
}

class _LiveDetailState extends State<LiveDetail> {
  YoutubePlayerController _controller;

  bool showAppBar = true;

  <strong i="11">@override</strong>
  void initState() {
    _controller = YoutubePlayerController(
      initialVideoId: widget.live.videoId,
      flags: YoutubePlayerFlags(autoPlay: true, isLive: widget.live.isLive, controlsVisibleAtStart: true),
    );
    super.initState();
  }

  Future<bool> _onWillPop() {
    if (_controller.value.isFullScreen) {
      _controller.toggleFullScreenMode();
    } else {
      Navigator.pop(context);
    }
  }

  <strong i="12">@override</strong>
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: _onWillPop,
      child: MaterialApp(
        title: 'Live',
        theme: ThemeData(primaryColor: Color(CustomColors.grena)),
        debugShowCheckedModeBanner: false,
        home: Scaffold(
            appBar: showAppBar
                ? AppBar(
                    title: Text(widget.live.title),
                    leading: new IconButton(
                      icon: new Icon(Icons.arrow_back),
                      onPressed: () {
                        Navigator.pop(context);
                      },
                    ),
                  )
                : null,
            body: Container(
              child: YoutubePlayerBuilder(
                player: YoutubePlayer(controller: _controller),
                builder: (context, player) {
                  return Column(
                    children: <Widget>[player],
                  );
                },
                onEnterFullScreen: () {
                  setState(() {
                    showAppBar = false;
                  });
                },
                onExitFullScreen: () {
                  setState(() {
                    showAppBar = true;
                  });
                },
              ),
            )),
      ),
    );
  }
}

рд▓реЗрдХрд┐рди рд╕реЗрдЯрд╕реНрдЯреЗрдЯ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдмрд╛рд░-рдмрд╛рд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдЧрд╛ рдЬрдм рдПрдВрдЯрд░рдлреБрд▓рд╕реНрдХреНрд░реАрди рдФрд░ рдСрдирдПрдХреНрд╕рд┐рдЯрдлреБрд▓рд╕реНрдХреНрд░реАрди рдХреЙрд▓рдмреИрдХ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдЧрд╛

рдмрд╕ рдЕрдкрдиреЗ рдордЪрд╛рди рдХреЛ YoutubePlayerBuilder рдХреЗ рдиреАрдЪреЗ рд░рдЦреЗрдВ

рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ @princeteck рдЬреИрд╕рд╛ рд╣реА рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рд╛ред рд╡реАрдбрд┐рдпреЛ рдХреНрд░реЙрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕рднреА рдХреИрдкреНрд╢рди рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ :)

рд╕рдорд╕реНрдпрд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлреБрд▓рд╕реНрдХреНрд░реАрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдкреНрд▓рдЧрдЗрди рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдкреНрд▓реЗрдпрд░ рд╣реИред рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЙрдкрд╛рдп :-

  1. рдкреНрд▓рдЧрдЗрди рдХреА рдиреАрдЪреЗ рджреА рдЧрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ (рддрд╛рдХрд┐ рд╣рдо рдкреНрд▓рдЧрдЗрди рдХреЛрдб рдмрджрд▓ рд╕рдХреЗрдВ)ред
    Screenshot 2021-03-01 at 5 49 45 PM
  1. рдЕрдм рдХреЙрдкреА рдХрд┐рдП рдЧрдП youtube_player.dart рдкрд░ рдЬрд╛рдПрдВ рдФрд░ buildPlayer () рд╡рд┐рдзрд┐ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ, рдФрд░ Transform.scale рд╡рд┐рдЬреЗрдЯ (RawYoutubePlayer рдХрд╛ рдореВрд▓ рд╡рд┐рдЬреЗрдЯ) рдХреЛ рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рд╕реАрдзреЗ RawYoutubePlayer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕реНрдХреЗрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдкрдХреА рдмрд┐рд▓реНрдбрдкреНрд▓реЗрдпрд░ () рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ, рдЗрд╕рдХреЗ рдмреЗрд╣рддрд░ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рд╕рдВрд▓рдЧреНрди рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЛ рджреЗрдЦреЗрдВред
    Screenshot 2021-03-01 at 6 15 31 PM

рд╣рд╛рдп @ рдкреНрд░рд┐рдВрд╕рдЯреЗрдХред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдЬрдм рд╣рдо рдлреБрд▓рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдмреВрд▓рд┐рдпрди рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо рдлреБрд▓рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рдореИрдВ рдРрдкрдмрд╛рд░ рдХреЛ рд╢реВрдиреНрдп рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдлреБрд▓рд╕реНрдХреНрд░реАрди рдлреБрд▓рд╕реНрдХреНрд░реАрди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХ рдмрдЯрди рдкреНрд░реЗрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рд▓рдкреЙрдкрд╕реНрдХреЛрдк рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рд╛ред рдпрд╣рд╛рдБ рдореЗрд░реА рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рд╣реИред рдореБрдЭреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд▓рд╛рдЗрд╡ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

class LiveDetail extends StatefulWidget {
  final Live live;

  LiveDetail({
    Key key,
    <strong i="9">@required</strong> this.live,
  }) : super(key: key);

  <strong i="10">@override</strong>
  _LiveDetailState createState() => _LiveDetailState();
}

class _LiveDetailState extends State<LiveDetail> {
  YoutubePlayerController _controller;

  bool showAppBar = true;

  <strong i="11">@override</strong>
  void initState() {
    _controller = YoutubePlayerController(
      initialVideoId: widget.live.videoId,
      flags: YoutubePlayerFlags(autoPlay: true, isLive: widget.live.isLive, controlsVisibleAtStart: true),
    );
    super.initState();
  }

  Future<bool> _onWillPop() {
    if (_controller.value.isFullScreen) {
      _controller.toggleFullScreenMode();
    } else {
      Navigator.pop(context);
    }
  }

  <strong i="12">@override</strong>
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: _onWillPop,
      child: MaterialApp(
        title: 'Live',
        theme: ThemeData(primaryColor: Color(CustomColors.grena)),
        debugShowCheckedModeBanner: false,
        home: Scaffold(
            appBar: showAppBar
                ? AppBar(
                    title: Text(widget.live.title),
                    leading: new IconButton(
                      icon: new Icon(Icons.arrow_back),
                      onPressed: () {
                        Navigator.pop(context);
                      },
                    ),
                  )
                : null,
            body: Container(
              child: YoutubePlayerBuilder(
                player: YoutubePlayer(controller: _controller),
                builder: (context, player) {
                  return Column(
                    children: <Widget>[player],
                  );
                },
                onEnterFullScreen: () {
                  setState(() {
                    showAppBar = false;
                  });
                },
                onExitFullScreen: () {
                  setState(() {
                    showAppBar = true;
                  });
                },
              ),
            )),
      ),
    );
  }
}

рдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рдРрдкрдмрд╛рд░ рдореЗрдВ рдЯреВрд▓рдмрд╛рд░ рд╣рд╛рдЗрдЯ рдкрд░рдо рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ

56 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ

AppBar(
        title: Text('Your title'),
        toolbarHeight: _fullScreen ? 0 : 56,
),
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mohadel92 picture mohadel92  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kyawsithu picture kyawsithu  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

HiIamAlanOu picture HiIamAlanOu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DiegoLimeiradaSilva picture DiegoLimeiradaSilva  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jumper900 picture jumper900  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ