This plugin provides Inlining YouTube player. To interact with YouTube the library uses the Frame Player API, inside of a WebView (Android), WKWebview (iOS). Therefore the YouTube app is not required on the user's device and there are no issues with YouTube Terms of Service.
This plugin using:
- Android: https://github.com/PierfrancescoSoffritti/android-youtube-player
- iOS: https://github.com/rinov/YoutubeKit
APK sample: https://github.com/hoanglm4/flutter_youtube_view/tree/master/example/android/APK
Add this to you package's pubspec.yaml
file:
dependencies:
flutter_youtube_view: ^1.1.4
Run command:
$ flutter packages get
Import in Dart code:
import 'package:flutter_youtube_view/flutter_youtube_view.dart';
Currently apps need to opt-in for the UIViews embedding preview on iOS by adding a boolean property to the Info.plist (key=io.flutter.embedded_views_preview value=YES).
Container(
child: FlutterYoutubeView(
onViewCreated: _onYoutubeCreated,
listener: this,
scaleMode: YoutubeScaleMode.none, // <option> fitWidth, fitHeight
params: YoutubeParam(
videoId: 'gcj2RUWQZ60',
showUI: false,
startSeconds: 0.0) // <option>
)
),
- play()
- pause()
- loadOrCueVideo()
- seekTo()
- setVolume() only Android
- mute()
- unMute()
void onReady();
void onStateChange(String state); // UNKNOWN, UNSTARTED, ENDED, PLAYING, PAUSED, BUFFERING, VIDEO_CUED
void onError(String error); // INVALID_PARAMETER_IN_REQUEST, HTML_5_PLAYER, VIDEO_NOT_FOUND, VIDEO_NOT_PLAYABLE_IN_EMBEDDED_PLAYER
void onVideoDuration(double duration);
void onCurrentSecond(double second);