Q_defaultErrorDescriptiondurationpositioncaption captionOffsetbuffered isPlaying isLooping isBufferingvolume playbackSpeederrorDescription isCompletedsizerotationCorrection isInitializedhasError aspectRatiocopyWithtoString==hashCode dataSource httpHeaders formatHintdataSourceTypevideoPlayerOptionspackageviewType_closedCaptionFileFuture_closedCaptionFile_timer _isDisposed_creatingCompleter_eventSubscription_lifeCycleObserverkUninitializedPlayerId _playerIdplayerId initializedisposeplay setLoopingpause _applyLooping_applyPlayPause _applyVolume_applyPlaybackSpeedseekTo setVolumesetPlaybackSpeedsetCaptionOffset _getCaptionAtclosedCaptionFilesetClosedCaptionFile_updateClosedCaptionWithFuture_updatePositionremoveListener_isDisposedOrNotInitialized_wasPlayingBeforePause _controllerdidChangeAppLifecycleState controller createState _listener initStatedidUpdateWidget deactivatebuildrotationchild playedColor bufferedColorbackgroundColor_controllerWasPlayingcolorsallowScrubbingpaddinglistenertext textStyle_lastVideoPlayerPlatform_videoPlayerPlatformVideoPlayerValueVideoPlayerController_VideoAppLifeCycleObserver VideoPlayer_VideoPlayerState_VideoPlayerWithRotationVideoProgressColors VideoScrubber_VideoScrubberStateVideoProgressIndicator_VideoProgressIndicatorState ClosedCaption€âDataSourceType DurationRange VideoFormatVideoPlayerOptionsVideoPlayerWebOptionsVideoPlayerWebOptionsControls VideoViewTypeVideoPlayerPlatforminstanceinit immutableSizezeroDurationCaptionnoneduration isInitializedStringerrorDescriptionListbooldoubleintwidthheightsizepositioncaption captionOffsetbuffered isPlaying isLooping isBufferingvolume playbackSpeedrotationCorrection isCompletedoverrideobjectRuntimeTypejoinObject identical runtimeType listEqualshash ValueNotifierFutureClosedCaptionFile textureViewasset DeprecatednetworkUritoStringFilefileabsolutepathdefaultTargetPlatformTargetPlatformandroid contentUriMapTimer CompletervoidStreamSubscriptiondynamicvisibleForTestingallowBackgroundPlayback initialize DataSource sourceTypepackageuri formatHint httpHeadersVideoCreationOptions dataSourceviewType mixWithOtherssetMixWithOtherscreateWithOptionscompletekIsWeb webOptions setWebOptions VideoEvent eventTypeVideoEventType initializedvaluecopyWith StateError completedthenbufferingUpdatebufferingStart bufferingEndisPlayingStateUpdateunknownPlatformException erroneousmessagecancel completeErrorvideoEventsForlistenonErrorfuturedispose setLoopingplayperiodic millisecondspause setVolumesetPlaybackSpeed getPositionmomentseekToclamp ArgumentErrorcaptionsstartend VoidCallbackremoveListenerWidgetsBindingObserverWidgetsBinding addObserverAppLifecycleStatepausedresumedremoveObserverStatefulWidgetStatewidget controllerplayerIdsetState initState addListenerdidUpdateWidget deactivateWidget BuildContextkUninitializedPlayerId ContainerrotationchildbuildViewWithOptionsVideoViewOptionsStatelessWidget RotatedBox quarterTurnsfromRGBOColorOffset RenderBoxfindRenderObject globalToLocaldxGestureDetectorbehaviorHitTestBehavioropaqueonHorizontalDragStartDragStartDetailsonHorizontalDragUpdateDragUpdateDetailsdetailsglobalPositiononHorizontalDragEndDragEndDetails onTapDownTapDownDetailsonlytop EdgeInsetsmountedcolorsinMillisecondsrangeStackfitStackFit passthroughchildrenLinearProgressIndicator valueColorAlwaysStoppedAnimation bufferedColorbackgroundColor playedColorColors transparentPaddingpaddingallowScrubbingclosedCaptionFile TextStyletextisEmptyshrinkDefaultTextStyleofstylefontSizecolorwhiteAlign alignment Alignment bottomCenterbottom DecoratedBox decoration BoxDecoration borderRadius BorderRadiuscircular symmetric horizontalText ValueNotifierObjectWidgetsBindingObserverStatefulWidgetStateStatelessWidgetÌ»§«È¢¹>!#½r´µ£B‚!‚áDataSourceType DurationRange VideoFormatVideoPlayerOptionsVideoPlayerWebOptionsVideoPlayerWebOptionsControls VideoViewType�ÇLpackage:video_player_platform_interface/video_player_platform_interface.dart‚äsrc/closed_caption_file.dart€¦ dart:async€»dart:io€Îpackage:flutter/foundation.dart€øpackage:flutter/material.dart� package:flutter/services.dart�HLpackage:video_player_platform_interface/video_player_platform_interface.dart� src/closed_caption_file.dartÀOìÀŸë„Õ<€†€¤€¥€º€Ì€Í€÷��G�ž�Ÿ�Æ�Ç‚‚&‚>‚U‚j‚†‚¥‚Ì‚ã‚äƒ ƒ ƒ;ƒ<ƒkƒ·ƒì„:„L„h„˜„œ„¶„¸„¹……)…4…M…ž…Ù…ô††+†N†o†—†Ä†ä‡‡‡:‡Q‡o‡�‡«‡É‡Ï‡Ðˆˆ8ˆuˆvˆ³ˆïˆý‰"‰D‰u‰v‰ÉŠŠgŠhŠ�Š•ŠáŠüŠý‹"‹=‹>‹Œ‹’‹ÞŒŒ/Œ0Œ˜ŒžŒ¿ŒßŒà��+�,�f�~��£�»�¼�쎎Ž1ŽHŽIŽrŽ�ޑ޾ŽÄŽñ���E�K�–�Á�Û�Ü� �� �l�Œ���Ü�ø�ù‘H‘Œ‘½‘¾‘ê‘ð’ ’/’h’¢’½’þ“““O“k“}“ƒ“›“Ÿ“ “ð”5”S”k”{”“”©”Ɣ镕•,•C•W•r•�•ȕߕæ––.–M–x– –Ú——?—m—›—Ï—ô˜.˜w˜¼˜Ù˜ü™0™7™;™<™H™^™›™»™Ó™óšš;šjš”š¶šØšþ››D›t›››Ÿ› ›¬›Ð›ðœœAœiœ‘œ·œé��E�o���Á�óž+žKž‡ž¹žåžæžòŸŸ'Ÿ9ŸJŸaŸsŸ†Ÿ™Ÿ®Ÿ¾ŸÕŸïŸý  0 E N P Q ž ¬ ° ã ç¡7¡;¡{¡¡²¡ø¢B¢H¢š¢ê£ ££c£±£Î£í¤¤¤H¤e¤”¤Ê¤ù¥¥D¥„¥…¥É¥Ï¦¦¦f¦�¦“¦ä§2§O§U§�§º§ø¨¨0¨E¨w¨”¨Å¨ô©*©[©s©³©´©ø©þªAªGª•ª¼ªÂªü«'«K«Z«o«¡«¾«ï¬¬T¬y¬ª¬Â­­­K­Q­¢®®"®3®e®‚®³®â¯¯V¯„¯œ¯·¯÷¯ø°F°L°‡°°°Ô°ê±±9±h±¨±÷²-²Y²�²¥²À²ð³0³1³�³³³Î³Ï´ ´<´f´�´�´Ùµµ%µ&µkµ†µ­µ®¶ ¶<¶=¶Œ¶¥¶¦¶Ö¶Ü·(·H·I·€·©·º·Ö·ý¸0¸b¸c¸š¸¯¸ß¹ ¹ ¹[¹p¹…¹¦¹§¹øººEºƒº§ºäºê»»<»=»h»†»§»Ó»ÿ¼¼8¼C¼f¼’¼À¼Û¼ý½!½,½L½x½£½¾½â½í¾¾?¾p¾‹¾–¾œ¾�¾ä¿ ¿'¿.¿/¿d¿…¿Å¿Ë¿Ì¿ÜÀ@'À@KÀ@sÀ@¸À@¹À@ßÀAÀAKÀA^ÀA‡ÀA�ÀA–ÀA—ÀAÂÀAÛÀAëÀAóÀAôÀBÀB>ÀB`ÀB†ÀB¤ÀBÞÀCÀC5ÀCUÀCbÀCtÀC¤ÀCòÀD8ÀD†ÀDÃÀDÐÀEÀENÀEZÀEŠÀE¥ÀE¿ÀEÜÀFÀFNÀFœÀFêÀG!ÀGgÀGœÀGÉÀHÀH1ÀHfÀH�ÀHÆÀHøÀI"ÀI6ÀI†ÀI™ÀIÙÀIåÀJ ÀJÀJ#ÀJ)ÀJ*ÀJVÀJœÀJ¢ÀJ£ÀJÈÀKÀK:ÀKRÀK‚ÀK´ÀK¼ÀKÂÀKÃÀKñÀLÀLLÀLuÀLyÀLzÀL†ÀL§ÀL¾ÀLÌÀLÒÀLÓÀLùÀM!ÀM;ÀMWÀMqÀM�ÀMÔÀMÜÀNÀNÀNÀN4ÀN8ÀN9ÀNYÀN_ÀN°ÀN¶ÀOÀOOÀO_ÀO}ÀO©ÀOÌÀOÒÀOÿÀPÀP ÀP!ÀPnÀP’ÀPÂÀPòÀQ ÀQÀQÀQ*ÀQIÀQwÀQ”ÀQ˜ÀQ™ÀQÀÀQçÀQõÀQûÀRBÀRFÀRGÀRpÀR—ÀR¥ÀR«ÀRÆÀRøÀRùÀSÀS0ÀS[ÀSyÀS–ÀSªÀS¶ÀSîÀTÀT'ÀT3ÀT[ÀTfÀToÀTpÀT½ÀU ÀU!ÀUDÀUQÀUiÀUœÀU¢ÀU¦ÀU§ÀUÍÀUôÀVÀVÀVKÀVOÀVPÀV}ÀV¤ÀV²ÀV¸ÀV¹ÀWÀWQÀWƒÀWŸÀW­ÀW³ÀW´ÀWåÀWöÀXÀXÀXÀXÀXFÀXoÀX†ÀX™ÀXŸÀX×ÀXÛÀXÜÀY!ÀYhÀYnÀY¾ÀYÚÀZ ÀZ2ÀZ@ÀZFÀZkÀZŒÀZ·ÀZ×ÀZÝÀ[À[8À[<À[=À[dÀ[jÀ[»À[ÏÀ[ÿÀ\;À\UÀ\YÀ\ZÀ\ƒÀ\‰À\ÒÀ]À]%À]RÀ]™À]åÀ^}À^ÎÀ_À_kÀ_yÀ_ÉÀ`À`eÀ`�À`ÃÀ`ØÀ`ùÀaÀaGÀaPÀamÀaŽÀa�ÀaîÀa÷ÀaýÀaþÀb0ÀbQÀbUÀbVÀbuÀb{ÀbÕÀcÀc Àc8Àc~ÀcßÀdBÀdmÀd‰Àd¦ÀdÔÀdÛÀdßÀdàÀe'Àe-ÀexÀe™ÀeŸÀeïÀfÀf-ÀfSÀfnÀftÀfuÀfºÀgÀgEÀg•Àg­ÀgµÀg»Àg¼ÀgÕÀgÙÀgÚÀh#ÀhXÀh}Àh�Àh‚Àh¤ÀhªÀhñÀiÀiHÀiTÀi‘ÀiÃÀiÇÀiÈÀi÷Àj)Àj5ÀjgÀj«Àj¯Àj°ÀjÜÀk,Àk}Àk¬ÀkÑÀkòÀkøÀlÀl.ÀlVÀl…ÀlŒÀl�Àl‘Àl�ÀlÌÀm!ÀmpÀmˆÀm®Àm´Àm¸Àm¹ÀnÀn Àn ÀnYÀn‰ÀnŠÀn±ÀnÜÀnÝÀnóÀo"Ào&Ào'Ào3ÀopÀo�ÀoÙÀoôÀp)ÀpMÀpiÀpqÀpwÀp{Àp|Àp�ÀpÁÀpÅÀpÇÀpÈÀqÀq2Àq{Àq®Àq¯ÀqýÀrÀr:Àr;ÀrGÀr‚Àr„Àr…ÀrºÀrÒÀrçÀs!ÀsGÀs]Às€ÀsŒÀs”Às›ÀsŸÀs Às¿ÀsÀÀsÖÀs×ÀsãÀsøÀtÀt;Àt†ÀtËÀtùÀtýÀtþÀu Àu:Àu`Àu”ÀuÀÀuîÀuòÀuóÀuÿÀvÀv-Àv^ÀvbÀvcÀvoÀv–ÀvÛÀvñÀwÀwWÀw•ÀwÊÀwÙÀwæÀwêÀwìÀwíÀx&ÀxvÀx¿ÀxÀÀxÖÀxìÀxíÀxùÀy Ày9ÀyMÀySÀyjÀyŽÀy¢Ày©Ày­Ày¯Ày°ÀyþÀz Àz$ÀzqÀz�ÀzÒÀzØÀ{'À{xÀ{†À{ŒÀ{ÛÀ|$À|;À|AÀ|‘À|ßÀ}À}9À}vÀ}·À}üÀ~À~À~RÀ~£À~±À~ÌÀ~ÍÀÀeÀ|À™ÀšÀêÀ€8À€tÀ€“À€•À€–À€ÉÀ€öÀ�5À�;À�ˆÀ��À�µÀ�ÄÀ�ÝÀ�ûÀ‚À‚À‚GÀ‚]À‚^À‚ªÀ‚ÔÀ‚ÕÀ‚áÀƒ Àƒ"Àƒ#Àƒ\Àƒ‚ÀƒƒÀƒÀÀƒÁÀƒÍÀƒôÀ„-À„sÀ„²À„ìÀ…2À…UÀ…[À…\À…xÀ… À…»À…õÀ†$À†6À†@À†|À†¡À†¿À†ÉÀ†ÒÀ‡À‡=À‡OÀ‡YÀ‡‘À‡šÀ‡ÐÀ‡õÀˆ;ÀˆXÀˆbÀˆkÀˆ—ÀˆÆÀˆØÀˆâÀ‰À‰#À‰*À‰.À‰0À‰1À‰�À‰…À‰ÑÀ‰ñÀ‰õÀŠFÀŠnÀФÀŠõÀ‹À‹À‹kÀ‹ºÀ‹ÏÀ‹ïÀŒÀŒÀŒDÀŒfÀŒšÀŒ ÀŒ¡ÀŒîÀŒüÀ�&À�'À�_À�eÀ�™À�½À�¾ÀŽ ÀŽIÀŽOÀŽhÀŽ…ÀކÀŽÒÀ�À� À�(À�DÀ�EÀ�QÀ�¢À�¤À�¥À�ðÀ�À�'À�=À�MÀ�UÀ�lÀ�sÀ�wÀ�xÀ�–À�—À�ÔÀ�ÕÀ‘À‘ À‘À‘*À‘AÀ‘gÀ‘kÀ‘lÀ‘xÀ‘ŽÀ‘·À‘ÏÀ‘ÓÀ‘ÔÀ‘àÀ’À’%À’OÀ’”À’ÙÀ’ÚÀ’öÀ“;À“mÀ“�À“­À“·À“¿À“ÀÀ“áÀ”À” À”CÀ”oÀ”¼À”ñÀ”þÀ•!À•IÀ•”À•ÅÀ•ÒÀ•ÝÀ•æÀ•óÀ–&À–mÀ–žÀ–§À–­À–áÀ—À— À—'À—HÀ—dÀ—„À—¬À—µÀ—ÂÀ—èÀ—îÀ—òÀ—ôÀ—õÀ˜2À˜6À˜tÀ˜xÀ˜ÈÀ˜ÕÀ˜ÙÀ™À™JÀ™NÀ™YÀ™]À™iÀ™‡À™§À™âÀ™êÀ™òÀš Àš_Àš�Àš‡ÀšÄÀ›À›À›SÀ›jÀ›¤À›ºÀ›»À›ûÀœÀœNÀœhÀœ†Àœ‡Àœ“ÀœºÀœÞÀ�À�,À�2À�3À�iÀ�žÀ�¼À�ßÀ�îÀ�ïÀžÀž*Àž@ÀžvÀž“Àž¸ÀžäÀŸÀŸ'ÀŸAÀŸƒÀŸ½ÀŸÊÀŸÕÀŸÞÀŸåÀŸéÀŸë€¥€º€Í€÷��G�Ÿ�Ç‚!‚á‚ä „¹›–…:…:o/// The duration, current position, buffering state, error state and settings /// of a [VideoPlayerController].…O‚…á…á…ñ€‡/// Constructs a video with the given values. Only [duration] is required. The /// rest will initialize with default values when unset.…ø††††††/†5†4†R†X†W†s"†y†x†›'†¡† †È†Î†Í†è†î†í‡‡ ‡ ‡ ‡&‡%‡>‡D‡C‡U‡[‡Z‡s‡y‡x‡”‡š‡™‡¯‡µ‡´† †$†%†?†G†H†a†h†i†ˆ†�†‘†«†À†Á†±†¿†²†Ý†ù‡‡3‡L‡j‡�‡Â‡Ò€¢ˆˆ'ˆ(ˆ5ˆ(‚`™Q™Q™>™?›¢ƒB›¼›¼›¿ ›Ç›Æ›¢›£…)…* QÀM¸¡¸¡¸�`/// Controls a platform video player, and provides updates when the state is /// changing. /// /// Instances must be initialized with initialize. /// /// The video is displayed in a Flutter app by creating a [VideoPlayer] widget. /// /// To reclaim the resources used by the player call [dispose]. /// /// After [dispose] all further calls are ignored.¡úƒ‰£Ð£å£æ£ë£æ�Ã/// Constructs a [VideoPlayerController] playing a video from an asset. /// /// The name of the asset is given by the [dataSource] argument and must not be /// null. The [package] argument must be non-null when the asset comes from a /// package and null otherwise. /// /// The [viewType] option allows the caller to request a specific display mode /// for the video. Platforms that do not support the request view type will /// ignore this parameter.£ñ£÷£ö¤ ¤¤ ¤,¤6¤5¤L¤R¤Q¤i)¤o¤n#¤y¤†¤‡¤µ¤œ¤·¤á¤Ò¤ã¤ñ¤ò¥ ¥¥¥(¥¥*¥@¥A¥0¥?¥1¥9¥L¥Q¥�¥R¥X¥h¥€¥q¥i¥s¥{¥|¥‡„+§ú¨¨¨¨‚/// Constructs a [VideoPlayerController] playing a network video. /// /// The URI for the video is given by the [dataSource] argument. /// /// **Android only**: The [formatHint] option allows the caller to override /// the video format detection code. /// /// The [viewType] option allows the caller to request a specific display mode /// for the video. Platforms that do not support the request view type will /// ignore this parameter. /// /// [httpHeaders] option allows to specify HTTP headers /// for the request to the [dataSource].¨¨#¨"¨4¨:¨9¨I,¨e¨d¨{¨�¨€¨˜+¨ž¨�¨É)¨Ï¨Î&§¼§½§Ç§ö§È¨«¨Á¨Â¨±¨À¨²¨º¨Ù¨æ¨ç©¨ü©©A©2©C©Q©R©k©c©m©{©€©°©�©‡©—©¯© ©˜©¢©ª©«©¶ƒK«)«>«?«I«?�`/// Constructs a [VideoPlayerController] playing a network video. /// /// The URI for the video is given by the [dataSource] argument. /// /// **Android only**: The [formatHint] option allows the caller to override /// the video format detection code. /// /// [httpHeaders] option allows to specify HTTP headers /// for the request to the [dataSource].«O«T«S«^«d«c«s,«�«Ž«¥«««ª«Â+«È«Ç«ó)«ù«ø(«Õ«ë«ì«Û«ê«Ü«ä¬¬¬¬?¬&¬A¬g¬\¬i¬l¬m¬u¬v¬�¬�¬’¬ ¬¡¬º¬²¬¼¬Ê¬Ï¬ÿ¬Ð¬Ö¬æ¬þ¬ï¬ç¬ñ¬ù¬ú­‚ñ®®®® ®€ø/// Constructs a [VideoPlayerController] playing a video from a file. /// /// This will load the file from a file:// URI constructed from [file]'s path. /// [httpHeaders] option allows to specify HTTP headers, mainly used for hls files like (m3u8).®& ®,®+®7,®S®R®i®o®n®†+®Œ®‹®·)®½®¼4®™®¯®°®Ÿ®®® ®¨®Ç®Ô®Õ¯®ê¯¯+¯ ¯-¯0¯1¯5¯H¯6¯:¯;¯C¯D¯I¯J¯R¯S¯m¯^¯o¯}¯~¯”¯Œ¯–¯¯¯¤¯±¯¿¯Ä¯ô¯Å¯Ë¯Û¯ó¯ä¯Ü¯æ¯î¯ï¯úƒ5°²°Ç°È°Ò°È€¯/// Constructs a [VideoPlayerController] playing a video from a contentUri. /// /// This will load the video from the input content-URI. /// This is supported on Android only.°Ø°Ý°Ü°î,± ± ± ±&±%±=)±C±B7±M±Z±[±p±v±¦±ô±�±w±�±ž±Ÿ±´²±ÿ²²@²5²B²L²M²U²V²p²a²r²€²�²�²•²Ÿ²¸²­²º²Ô²È²Ö²ì²í²Ü²ë²Ý²å²ø²ý³-²þ³³³,³³³³'³(³3€™³Â³Â}/// The URI to the video file. This will be in different formats depending on /// the [DataSourceType] of the original video.³Ñ€¼´‚´‚€�/// HTTP headers used for the request to the [dataSource]. /// Only for [VideoPlayerController.network]. /// Always empty for other video types.´’€‘µµo/// **Android only**. Will override the platform's generic file format /// detection with whatever is set here.µ(€ƒµ�µ�[/// Describes the type of data source this [VideoPlayerController] /// is constructed with.µ°€Š¶(¶([/// Provide additional configuration options (optional). Like setting the audio mode to mix¶?d¶œ¶œL/// Only set for [asset] videos. The package that the asset was loaded from.¶¨€ž·>·>{/// The requested display mode for the video. /// /// Platforms that do not support the request view type will ignore this.·K3·f·f·‚%·•·•·« ·²·²·¼·Á·Á·Ï·Ø#·é·é·ÿ/¸¸¸2.¸N¸N¸ex¸Â¸Â4/// The id of a player that hasn't been initialized.¸œ¸�¸Û¸Ü¸á&¸å¸å¸ñ¹ €™¹�¹�a/// This is just exposed for testing. It shouldn't be used by anyone depending /// on the plugin.¹r¹sÀX€»ÀX^ÀX^&/// The position in the current video.ÀgÜ€¤ÀhDÀhDF/// Returns the file containing closed captions for the video, if any.Àm»LÀmÄÀmĹ©’ϺºN/// Attempts to open the given [dataSource] and load metadata about the video.ÀL|�»ÀL•ÀL•ÀL|ÀL}ÀN;�äÀOnÀOn�/// Starts playing the video. /// /// If the video is at the end, this method starts playing from the beginning. /// /// This method returns a future that completes as soon as the "play" command /// has been sent to the platform, not when playback itself is totally /// finished.ÀP#€íÀP¡ÀP¡l/// Sets whether or not the video should loop after playing once. See also /// [VideoPlayerValue.isLooping].ÀP¬ ÀP²ÀP±ÀQ€ƒÀQ9ÀQ9/// Pauses the video.ÀQ›€ªÀQ¨ÀQ¨ÀRIƒ\ÀRVÀRVÀU©€¥ÀU¶ÀU¶ÀVR�ÉÀV_ÀV_ÀXÞ‚]ÀYéÀYé€ó/// Sets the video's current timestamp to be at [moment]. The next /// time the video is played it will resume from the given [moment]. /// /// If [moment] is outside of the video's full range it will be automatically /// and silently clamped.ÀYðÀYúÀYùÀ[?�À[ÞÀ[Þ€‰/// Sets the audio volume of [this]. /// /// [volume] indicates a value between 0.0 (silent) and 1.0 (full volume) on a /// linear scale.À[è À[ðÀ[ïÀ\\…øÀ`œÀ`œ„/// Sets the playback speed of [this]. /// /// [speed] indicates a speed value with different platforms accepting /// different ranges for speed values. The [speed] must be greater than 0. /// /// The values will be handled as follows: /// * On web, the audio will be muted at some speed when the browser /// determines that the sound would not be useful anymore. For example, /// "Gecko mutes the sound outside the range `0.25` to `5.0`" (see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/playbackRate). /// * On Android, some very extreme speeds will not be played back accurately. /// Instead, your video will still be played back, but the speed will be /// clamped by ExoPlayer (but the values are allowed by the player, like on /// web). /// * On iOS, you can sometimes not go above `2.0` playback speed on a video. /// An error will be thrown for if the option is unsupported. It is also /// possible that your specific video cannot be slowed down, in which case /// the plugin also reports errors.À`­ À`µÀ`´ÀbX‚†ÀdIÀdI�Ù/// Sets the caption offset. /// /// The [offset] will be used when getting the correct caption for a specific position. /// The [offset] can be positive or negative. /// /// The values will be handled as follows: /// * 0: This is the default behaviour. No offset will be applied. /// * >0: The caption will have a negative offset. So you will get caption text from the past. /// * <0: The caption will have a positive offset. So you will get caption text from the future.ÀdZÀddÀdcÀdâ‚öÀf Àf �/// The closed caption based on the current [position] in the video. /// /// If there are no closed captions at the current [position], this will /// return an empty [Caption]. /// /// If no [closedCaptionFile] was specified, this will always return an empty /// [Caption].ÀfÀf"Àf!Àh„�BÀiÀih/// Sets a closed caption file. /// /// If [closedCaptionFile] is null, closed captions will be removed.Ài,Ài6Ài5ÀiÊ€äÀi×Ài×Àiû,ÀjÀjÀj²�ÝÀj·Àj·ÀjÇÀjÑÀjÐÀl“�$Àl¤Àl¤Àl³ÀlÁÀlÀÀl“Àl”Àn ‚»ÀnÀnÀn[-Àn[Àn[ÀnuÀnvÀn|Àn{ÀnŒ#Àn‘Àn‘ÀnªÀn³'ÀnÏÀnÏÀnßFÀnäÀnäÀo)�QÀo:Ào:ÀoUÀohÀogÀo)Ào*Àp~FÀpƒÀpƒÀpÈ�»Àq Àq >/// Widget that displays the video controlled by [controller].Àq4yÀqƒÀqƒÀqŽF/// Uses the given [controller] for all video rendered in this widget.Àq�Àq•Àq”Àq¡ Àq¨Àq§Àq±€‡Àr.Àr.\/// The [VideoPlayerController] responsible for the video being rendered in /// this widget.Àr=DÀr\Àr\Àr=Àr>Àr……fÀr‹Àr‹Àr¼€âÀr¼Àr¼ÀrÍÀs¢Às´Às´ÀsÂÀsËÀsËÀsÙ�#ÀsêÀsêÀsÙÀsÚÀu€ñÀuÀuÀu!Àu.Àu-ÀuÀuÀuõlÀvÀvÀuõÀuöÀve�„ÀvxÀvxÀv~ÀvŒÀv‹ÀveÀvfÀwí�ÁÀwóÀwóÀx(€–Àx.Àx.ÀxFÀxHÀxWÀxVÀx`ÀxoÀxn Àx~Àx„Àx—Àx¼Àx“ÀxŽÀx…Àx�Àx–Àx™ÀxÂÀxÌÀxÌÀxØÀxåÀxåÀxÀyÀyÀyÀyÀyÀxïÀxðÀy°†äÀzwÀzw€À/// Used to configure the [VideoProgressIndicator] widget's colors for how it /// describes the video's status. /// /// The widget uses default colors that are customizable through this class.Àz�ƒrÀ}#À}#À}6‚s/// Any property can be set to any color. They each have defaults. /// /// [playedColor] defaults to red at 70% opacity. This fills up a portion of /// the [VideoProgressIndicator] to represent how much of the video has played /// so far. /// /// [bufferedColor] defaults to blue at 20% opacity. This fills up a portion /// of [VideoProgressIndicator] to represent how much of the video has /// buffered so far. /// /// [backgroundColor] defaults to gray at 50% opacity. This is the background /// color behind both [playedColor] and [bufferedColor] to denote the total /// size of the video compared to either of those values.À}=7À}CÀ}BÀ}z;À}€À}À}»?À}ÁÀ}ÀÀ}PÀ}VÀ}[À}\À}dÀ}sÀ}eÀ}jÀ}mÀ}pÀ}�À}•À}šÀ}›À}£À}´À}¤À}¨À}¬À}±À}ÒÀ}ØÀ}ÝÀ}ÞÀ}æÀ}ùÀ}çÀ}ìÀ}ñÀ}öÀ~€ÅÀ~¿À~¿€§/// [playedColor] defaults to red at 70% opacity. This fills up a portion of /// the [VideoProgressIndicator] to represent how much of the video has played /// so far.À~Ï€ÈÀŠÀŠ€¨/// [bufferedColor] defaults to blue at 20% opacity. This fills up a portion /// of [VideoProgressIndicator] to represent how much of the video has /// buffered so far.Àœ€õÀ€‚À€‚€Ó/// [backgroundColor] defaults to gray at 50% opacity. This is the background /// color behind both [playedColor] and [bufferedColor] to denote the total /// size of the video compared to either of those values.À€–‚‹À€ÏÀ€Ï2/// A scrubber to control [VideoPlayerController]sÀ€ø�À�¥À�¥À�²€ž/// Create a [VideoScrubber] handler with the given [child]. /// /// [controller] is the [VideoPlayerController] that will be controlled by /// this scrubber.À�¹ À�ÀÀ�¿À�ÈÀ�×À�ÖÀ�áÀ�ðÀ�ïÀ‚WÀ‚VÀ‚VB/// The widget that will be displayed inside the gesture detector.À‚`rÀ‚ÈÀ‚ÈI/// The [VideoPlayerController] that will be controlled by this scrubber.À‚×HÀ‚øÀ‚øÀ‚×À‚ØÀƒ#† Àƒ)Àƒ)Àƒ^"ÀƒcÀƒcÀƒ{Àƒ…:ÀƒŸÀƒŸÀƒÃ…jÀƒÖÀƒÖÀƒÜÀƒêÀƒéÀƒÃÀƒÄÀ‰1†rÀŠtÀŠt�[ /// VideoPlayer(_controller), /// ClosedCaption(text: _controller.value.caption.text), /// ]), /// ```Àš"€àÀšÌÀšÌÀšÙ€›/// Creates a a new closed caption, designed to be used with /// [VideoPlayerValue.caption]. /// /// If [text] is null or empty, nothing will be displayed.ÀšÛ ÀšâÀšáÀšæ ÀšìÀšëÀšñÀš÷ÀšöÀ›€²À›´À›´€™/// The text that will be shown in the closed caption, or null if no caption /// should be shown. /// If the text is empty the caption will not be shown.À›½€ÇÀœ{Àœ{€¤/// Specifies how the text in the closed caption should look. /// /// If null, defaults to [DefaultTextStyle.of(context).style] with size 36 /// font colored white.Àœ‰ƒ_ÀœœÀœœÀœ¢Àœ°Àœ¯Àœ‰ÀœŠƒ<�{ƒTƒTƒ -ƒ!ƒ!„Õ<€†€¤€¥€º€Ì€Í€÷��G�ž�Ÿ�Æ�Ç‚‚&‚>‚U‚j‚†‚¥‚Ì‚ã‚äƒ ƒ ƒ;ƒ<ƒkƒ·ƒì„:„L„h„˜„œ„¶„¸„¹……)…4…M…ž…Ù…ô††+†N†o†—†Ä†ä‡‡‡:‡Q‡o‡�‡«‡É‡Ï‡Ðˆˆ8ˆuˆvˆ³ˆïˆý‰"‰D‰u‰v‰ÉŠŠgŠhŠ�Š•ŠáŠüŠý‹"‹=‹>‹Œ‹’‹ÞŒŒ/Œ0Œ˜ŒžŒ¿ŒßŒà��+�,�f�~��£�»�¼�쎎Ž1ŽHŽIŽrŽ�ޑ޾ŽÄŽñ���E�K�–�Á�Û�Ü� �� �l�Œ���Ü�ø�ù‘H‘Œ‘½‘¾‘ê‘ð’ ’/’h’¢’½’þ“““O“k“}“ƒ“›“Ÿ“ “ð”5”S”k”{”“”©”Ɣ镕•,•C•W•r•�•ȕߕæ––.–M–x– –Ú——?—m—›—Ï—ô˜.˜w˜¼˜Ù˜ü™0™7™;™<™H™^™›™»™Ó™óšš;šjš”š¶šØšþ››D›t›››Ÿ› ›¬›Ð›ðœœAœiœ‘œ·œé��E�o���Á�óž+žKž‡ž¹žåžæžòŸŸ'Ÿ9ŸJŸaŸsŸ†Ÿ™Ÿ®Ÿ¾ŸÕŸïŸý  0 E N P Q ž ¬ ° ã ç¡7¡;¡{¡¡²¡ø¢B¢H¢š¢ê£ ££c£±£Î£í¤¤¤H¤e¤”¤Ê¤ù¥¥D¥„¥…¥É¥Ï¦¦¦f¦�¦“¦ä§2§O§U§�§º§ø¨¨0¨E¨w¨”¨Å¨ô©*©[©s©³©´©ø©þªAªGª•ª¼ªÂªü«'«K«Z«o«¡«¾«ï¬¬T¬y¬ª¬Â­­­K­Q­¢®®"®3®e®‚®³®â¯¯V¯„¯œ¯·¯÷¯ø°F°L°‡°°°Ô°ê±±9±h±¨±÷²-²Y²�²¥²À²ð³0³1³�³³³Î³Ï´ ´<´f´�´�´Ùµµ%µ&µkµ†µ­µ®¶ ¶<¶=¶Œ¶¥¶¦¶Ö¶Ü·(·H·I·€·©·º·Ö·ý¸0¸b¸c¸š¸¯¸ß¹ ¹ ¹[¹p¹…¹¦¹§¹øººEºƒº§ºäºê»»<»=»h»†»§»Ó»ÿ¼¼8¼C¼f¼’¼À¼Û¼ý½!½,½L½x½£½¾½â½í¾¾?¾p¾‹¾–¾œ¾�¾ä¿ ¿'¿.¿/¿d¿…¿Å¿Ë¿Ì¿ÜÀ@'À@KÀ@sÀ@¸À@¹À@ßÀAÀAKÀA^ÀA‡ÀA�ÀA–ÀA—ÀAÂÀAÛÀAëÀAóÀAôÀBÀB>ÀB`ÀB†ÀB¤ÀBÞÀCÀC5ÀCUÀCbÀCtÀC¤ÀCòÀD8ÀD†ÀDÃÀDÐÀEÀENÀEZÀEŠÀE¥ÀE¿ÀEÜÀFÀFNÀFœÀFêÀG!ÀGgÀGœÀGÉÀHÀH1ÀHfÀH�ÀHÆÀHøÀI"ÀI6ÀI†ÀI™ÀIÙÀIåÀJ ÀJÀJ#ÀJ)ÀJ*ÀJVÀJœÀJ¢ÀJ£ÀJÈÀKÀK:ÀKRÀK‚ÀK´ÀK¼ÀKÂÀKÃÀKñÀLÀLLÀLuÀLyÀLzÀL†ÀL§ÀL¾ÀLÌÀLÒÀLÓÀLùÀM!ÀM;ÀMWÀMqÀM�ÀMÔÀMÜÀNÀNÀNÀN4ÀN8ÀN9ÀNYÀN_ÀN°ÀN¶ÀOÀOOÀO_ÀO}ÀO©ÀOÌÀOÒÀOÿÀPÀP ÀP!ÀPnÀP’ÀPÂÀPòÀQ ÀQÀQÀQ*ÀQIÀQwÀQ”ÀQ˜ÀQ™ÀQÀÀQçÀQõÀQûÀRBÀRFÀRGÀRpÀR—ÀR¥ÀR«ÀRÆÀRøÀRùÀSÀS0ÀS[ÀSyÀS–ÀSªÀS¶ÀSîÀTÀT'ÀT3ÀT[ÀTfÀToÀTpÀT½ÀU ÀU!ÀUDÀUQÀUiÀUœÀU¢ÀU¦ÀU§ÀUÍÀUôÀVÀVÀVKÀVOÀVPÀV}ÀV¤ÀV²ÀV¸ÀV¹ÀWÀWQÀWƒÀWŸÀW­ÀW³ÀW´ÀWåÀWöÀXÀXÀXÀXÀXFÀXoÀX†ÀX™ÀXŸÀX×ÀXÛÀXÜÀY!ÀYhÀYnÀY¾ÀYÚÀZ ÀZ2ÀZ@ÀZFÀZkÀZŒÀZ·ÀZ×ÀZÝÀ[À[8À[<À[=À[dÀ[jÀ[»À[ÏÀ[ÿÀ\;À\UÀ\YÀ\ZÀ\ƒÀ\‰À\ÒÀ]À]%À]RÀ]™À]åÀ^}À^ÎÀ_À_kÀ_yÀ_ÉÀ`À`eÀ`�À`ÃÀ`ØÀ`ùÀaÀaGÀaPÀamÀaŽÀa�ÀaîÀa÷ÀaýÀaþÀb0ÀbQÀbUÀbVÀbuÀb{ÀbÕÀcÀc Àc8Àc~ÀcßÀdBÀdmÀd‰Àd¦ÀdÔÀdÛÀdßÀdàÀe'Àe-ÀexÀe™ÀeŸÀeïÀfÀf-ÀfSÀfnÀftÀfuÀfºÀgÀgEÀg•Àg­ÀgµÀg»Àg¼ÀgÕÀgÙÀgÚÀh#ÀhXÀh}Àh�Àh‚Àh¤ÀhªÀhñÀiÀiHÀiTÀi‘ÀiÃÀiÇÀiÈÀi÷Àj)Àj5ÀjgÀj«Àj¯Àj°ÀjÜÀk,Àk}Àk¬ÀkÑÀkòÀkøÀlÀl.ÀlVÀl…ÀlŒÀl�Àl‘Àl�ÀlÌÀm!ÀmpÀmˆÀm®Àm´Àm¸Àm¹ÀnÀn Àn ÀnYÀn‰ÀnŠÀn±ÀnÜÀnÝÀnóÀo"Ào&Ào'Ào3ÀopÀo�ÀoÙÀoôÀp)ÀpMÀpiÀpqÀpwÀp{Àp|Àp�ÀpÁÀpÅÀpÇÀpÈÀqÀq2Àq{Àq®Àq¯ÀqýÀrÀr:Àr;ÀrGÀr‚Àr„Àr…ÀrºÀrÒÀrçÀs!ÀsGÀs]Às€ÀsŒÀs”Às›ÀsŸÀs Às¿ÀsÀÀsÖÀs×ÀsãÀsøÀtÀt;Àt†ÀtËÀtùÀtýÀtþÀu Àu:Àu`Àu”ÀuÀÀuîÀuòÀuóÀuÿÀvÀv-Àv^ÀvbÀvcÀvoÀv–ÀvÛÀvñÀwÀwWÀw•ÀwÊÀwÙÀwæÀwêÀwìÀwíÀx&ÀxvÀx¿ÀxÀÀxÖÀxìÀxíÀxùÀy Ày9ÀyMÀySÀyjÀyŽÀy¢Ày©Ày­Ày¯Ày°ÀyþÀz Àz$ÀzqÀz�ÀzÒÀzØÀ{'À{xÀ{†À{ŒÀ{ÛÀ|$À|;À|AÀ|‘À|ßÀ}À}9À}vÀ}·À}üÀ~À~À~RÀ~£À~±À~ÌÀ~ÍÀÀeÀ|À™ÀšÀêÀ€8À€tÀ€“À€•À€–À€ÉÀ€öÀ�5À�;À�ˆÀ��À�µÀ�ÄÀ�ÝÀ�ûÀ‚À‚À‚GÀ‚]À‚^À‚ªÀ‚ÔÀ‚ÕÀ‚áÀƒ Àƒ"Àƒ#Àƒ\Àƒ‚ÀƒƒÀƒÀÀƒÁÀƒÍÀƒôÀ„-À„sÀ„²À„ìÀ…2À…UÀ…[À…\À…xÀ… À…»À…õÀ†$À†6À†@À†|À†¡À†¿À†ÉÀ†ÒÀ‡À‡=À‡OÀ‡YÀ‡‘À‡šÀ‡ÐÀ‡õÀˆ;ÀˆXÀˆbÀˆkÀˆ—ÀˆÆÀˆØÀˆâÀ‰À‰#À‰*À‰.À‰0À‰1À‰�À‰…À‰ÑÀ‰ñÀ‰õÀŠFÀŠnÀФÀŠõÀ‹À‹À‹kÀ‹ºÀ‹ÏÀ‹ïÀŒÀŒÀŒDÀŒfÀŒšÀŒ ÀŒ¡ÀŒîÀŒüÀ�&À�'À�_À�eÀ�™À�½À�¾ÀŽ ÀŽIÀŽOÀŽhÀŽ…ÀކÀŽÒÀ�À� À�(À�DÀ�EÀ�QÀ�¢À�¤À�¥À�ðÀ�À�'À�=À�MÀ�UÀ�lÀ�sÀ�wÀ�xÀ�–À�—À�ÔÀ�ÕÀ‘À‘ À‘À‘*À‘AÀ‘gÀ‘kÀ‘lÀ‘xÀ‘ŽÀ‘·À‘ÏÀ‘ÓÀ‘ÔÀ‘àÀ’À’%À’OÀ’”À’ÙÀ’ÚÀ’öÀ“;À“mÀ“�À“­À“·À“¿À“ÀÀ“áÀ”À” À”CÀ”oÀ”¼À”ñÀ”þÀ•!À•IÀ•”À•ÅÀ•ÒÀ•ÝÀ•æÀ•óÀ–&À–mÀ–žÀ–§À–­À–áÀ—À— À—'À—HÀ—dÀ—„À—¬À—µÀ—ÂÀ—èÀ—îÀ—òÀ—ôÀ—õÀ˜2À˜6À˜tÀ˜xÀ˜ÈÀ˜ÕÀ˜ÙÀ™À™JÀ™NÀ™YÀ™]À™iÀ™‡À™§À™âÀ™êÀ™òÀš Àš_Àš�Àš‡ÀšÄÀ›À›À›SÀ›jÀ›¤À›ºÀ›»À›ûÀœÀœNÀœhÀœ†Àœ‡Àœ“ÀœºÀœÞÀ�À�,À�2À�3À�iÀ�žÀ�¼À�ßÀ�îÀ�ïÀžÀž*Àž@ÀžvÀž“Àž¸ÀžäÀŸÀŸ'ÀŸAÀŸƒÀŸ½ÀŸÊÀŸÕÀŸÞÀŸåÀŸéÀŸë_lastVideoPlayerPlatform_videoPlayerPlatformVideoPlayerValueVideoPlayerController_VideoAppLifeCycleObserver VideoPlayer_VideoPlayerState_VideoPlayerWithRotationVideoProgressColors VideoScrubber_VideoScrubberStateVideoProgressIndicator_VideoProgressIndicatorState ClosedCaption�F