Reputation: 49
How to play youtube video in flutter?
I tried two plugins but there were some bugs in them.
youtube_player plugin (https://pub.dev/packages/youtube_player) gives exoPlayer error for some videos & those videos are not played using this plugin (see https://github.com/sarbagyastha/youtube_player/issues/42).
youtube_player_flutter plugin (https://pub.dev/packages/youtube_player_flutter) has serious bugs & it cannot be used for now.
Are there any other options?
Upvotes: 4
Views: 3396
Reputation: 568
You could try using video_player (https://pub.dev/packages/video_player)
import 'package:video_player/video_player.dart';
import 'package:flutter/material.dart';
void main() => runApp(VideoApp());
class VideoApp extends StatefulWidget {
@override
_VideoAppState createState() => _VideoAppState();
}
class _VideoAppState extends State<VideoApp> {
VideoPlayerController _controller;
@override
void initState() {
super.initState();
_controller = VideoPlayerController.network(
'youtubevideolink')
..initialize().then((_) {
setState(() {
// do stuff
});
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Video Demo',
home: Scaffold(
body: Center(
child: _controller.value.initialized
? AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
)
: Container(),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
_controller.value.isPlaying
? _controller.pause()
: _controller.play();
});
},
child: Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
),
),
);
}
@override
void dispose() {
super.dispose();
_controller.dispose();
}
}
Upvotes: 2