YoutubePlayerController constructor
YoutubePlayerController({
- YoutubePlayerParams params = const YoutubePlayerParams(),
- ValueChanged<
YoutubeWebResourceError> ? onWebResourceError,
Creates YoutubePlayerController.
Implementation
YoutubePlayerController({
this.params = const YoutubePlayerParams(),
ValueChanged<YoutubeWebResourceError>? onWebResourceError,
}) {
_eventHandler = YoutubePlayerEventHandler(this);
late final PlatformWebViewControllerCreationParams webViewParams;
if (WebViewPlatform.instance is WebKitWebViewPlatform) {
webViewParams = WebKitWebViewControllerCreationParams(
allowsInlineMediaPlayback: true,
mediaTypesRequiringUserAction: const <PlaybackMediaTypes>{},
);
} else {
webViewParams = const PlatformWebViewControllerCreationParams();
}
final navigationDelegate = NavigationDelegate(
onWebResourceError: (error) {
log(error.description, name: error.errorType.toString());
onWebResourceError?.call(error);
},
onNavigationRequest: (request) {
final uri = Uri.tryParse(request.url);
return _decideNavigation(uri);
},
);
webViewController = WebViewController.fromPlatformCreationParams(
webViewParams,
)
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setNavigationDelegate(navigationDelegate)
..setUserAgent(params.userAgent)
..addJavaScriptChannel(
_youtubeJSChannelName,
onMessageReceived: _eventHandler,
)
..enableZoom(false);
final webViewPlatform = webViewController.platform;
if (webViewPlatform is AndroidWebViewController) {
AndroidWebViewController.enableDebugging(false);
webViewPlatform.setMediaPlaybackRequiresUserGesture(false);
} else if (webViewPlatform is WebKitWebViewController) {
webViewPlatform.setAllowsBackForwardNavigationGestures(false);
}
}