рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдк рд╕реВрдЪреАрджреГрд╢реНрдп рдХреЗ рдЕрдВрджрд░ YoutubePlayerIFrame рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдЬреЗрдЯ рдкрд░ рд╣реЛрд╡рд░ рдХрд░реЗрдВ рдФрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ - рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рдЬрдирди рдХрд░рдирд╛
рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:
рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░
ListView рдореВрд▓ рдРрдкреНрд╕ рдХреА рддрд░рд╣ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЯреЗрдХреНрдирд┐рдХрд▓ рдбрд┐рдЯреЗрд▓:
рдЗрд╕ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдШрдЯрдХ рдореЗрдВ рд╡реЗрдмрд╡реНрдпреВ рд╕реНрдХреНрд░реЙрд▓ рдИрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
YoutubePlayerIFrame(
gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>{},
controller: _controller,
),
рдореЛрдмрд╛рдЗрд▓ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╕рд╛рджрд░!
gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>{},
рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╡реЗрдм рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореЗрд░реЗ рд╕рд╛рде рднреА рд╡рд╣реА рджрд┐рдХреНрдХрдд рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
@quangvtvp рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдкреИрдХреЗрдЬ youtube_plyr_iframe рдореЗрдВ рдмрджрд▓рдирд╛ рдерд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
@quangvtvp рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдкреИрдХреЗрдЬ youtube_plyr_iframe рдореЗрдВ рдмрджрд▓рдирд╛ рдерд╛ред
@FerBueroTrebino рдпрд╣ рднреА рд╡реЗрдм рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ?
@deepakrana0011 рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛?
рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдХреЛрдб рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
class YoutubePlayer extends StatefulWidget {
final String videoID;
YoutubePlayer(this.videoID);
<strong i="8">@override</strong>
_YoutubePlayerState createState() => _YoutubePlayerState();
}
class _YoutubePlayerState extends State<YoutubePlayer> {
<strong i="9">@override</strong>
Widget build(BuildContext context) {
return Material(
color: Colors.transparent,
child: InkWell(
onTap: () {
_showDialog(
context,
widget.videoID,
);
},
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Stack(
children: <Widget>[
LayoutBuilder(
builder: (context, constraints) {
if (kIsWeb && constraints.maxWidth > 800) {
return Container(
color: Colors.transparent,
padding: EdgeInsets.all(5),
width: MediaQuery.of(context).size.width / 2,
child: ClipRRect(
borderRadius: BorderRadius.circular(10.0),
child: new Image.network(
YoutubePlayerController.getThumbnail(
videoId: widget.videoID,
// todo: get thumbnail quality from list
quality: ThumbnailQuality.max),
fit: BoxFit.fill,
),
),
);
} else {
return Container(
color: Colors.transparent,
padding: EdgeInsets.all(5),
width: MediaQuery.of(context).size.width * 2,
child: ClipRRect(
borderRadius: BorderRadius.circular(10.0),
child: new Image.network(
YoutubePlayerController.getThumbnail(
videoId: widget.videoID,
// todo: get thumbnail quality from list
quality: ThumbnailQuality.max,
webp: false),
fit: BoxFit.fill,
),
),
);
}
},
),
],
),
Icon(
Icons.play_circle_filled,
color: Colors.white,
size: 55.0,
),
],
),
),
);
}
@deepakrana0011 рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛?
рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдХреЛрдб рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
class YoutubePlayer extends StatefulWidget { final String videoID; YoutubePlayer(this.videoID); <strong i="9">@override</strong> _YoutubePlayerState createState() => _YoutubePlayerState(); } class _YoutubePlayerState extends State<YoutubePlayer> { <strong i="10">@override</strong> Widget build(BuildContext context) { return Material( color: Colors.transparent, child: InkWell( onTap: () { _showDialog( context, widget.videoID, ); }, child: Stack( alignment: Alignment.center, children: <Widget>[ Stack( children: <Widget>[ LayoutBuilder( builder: (context, constraints) { if (kIsWeb && constraints.maxWidth > 800) { return Container( color: Colors.transparent, padding: EdgeInsets.all(5), width: MediaQuery.of(context).size.width / 2, child: ClipRRect( borderRadius: BorderRadius.circular(10.0), child: new Image.network( YoutubePlayerController.getThumbnail( videoId: widget.videoID, // todo: get thumbnail quality from list quality: ThumbnailQuality.max), fit: BoxFit.fill, ), ), ); } else { return Container( color: Colors.transparent, padding: EdgeInsets.all(5), width: MediaQuery.of(context).size.width * 2, child: ClipRRect( borderRadius: BorderRadius.circular(10.0), child: new Image.network( YoutubePlayerController.getThumbnail( videoId: widget.videoID, // todo: get thumbnail quality from list quality: ThumbnailQuality.max, webp: false), fit: BoxFit.fill, ), ), ); } }, ), ], ), Icon( Icons.play_circle_filled, color: Colors.white, size: 55.0, ), ], ), ), ); }
@FerBueroTrebino рдХреЛрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдк рдХреЗрд╡рд▓ youtube рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдердВрдмрдиреЗрд▓ рджрд┐рдЦрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдЖрдк youtube рд╡реАрдбрд┐рдпреЛ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ
рд╡рд╣реА рдпрд╣рд╛рдБ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ ....
Iv рдиреЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ VIMEO рддрдХ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдмрдирд╛рдпрд╛ рдФрд░ рд╕реНрдкрдВрджрди рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдкреНрд▓реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди youtube рдХреЗ рд╕рднреА рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЬрд╡рд╛рдм рдХреЛрдИ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП
рд╕реНрдХреНрд░реЙрд▓ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдпрд╛ рдХреБрдЫ рдФрд░ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдореИрдВрдиреЗ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
рдпрд╣: рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЗрд╕ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдШрдЯрдХ рдореЗрдВ рд╡реЗрдмрд╡реНрдпреВ рд╕реНрдХреНрд░реЙрд▓ рдИрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдореЛрдмрд╛рдЗрд▓ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╕рд╛рджрд░!