P_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_controllerDidUpdateValue initStatedidUpdateWidgetbuildrotationchild playedColor bufferedColorbackgroundColor_controllerWasPlayingcolorsallowScrubbingpadding_didUpdateControllerValuetext textStyle_lastVideoPlayerPlatform_videoPlayerPlatformVideoPlayerValueVideoPlayerController_VideoAppLifeCycleObserver VideoPlayer_VideoPlayerState_VideoPlayerWithRotationVideoProgressColors VideoScrubber_VideoScrubberStateVideoProgressIndicator_VideoProgressIndicatorState ClosedCaption€ãmaxDataSourceType 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 addListenerdidUpdateWidgetWidget BuildContextkUninitializedPlayerId ContainerrotationchildbuildViewWithOptionsVideoViewOptionsStatelessWidget RotatedBox quarterTurnsfromRGBOColorOffset RenderBoxfindRenderObject globalToLocaldxGestureDetectorbehaviorHitTestBehavioropaqueonHorizontalDragStartDragStartDetailsonHorizontalDragUpdateDragUpdateDetailsdetailsglobalPositiononHorizontalDragEndDragEndDetails onTapDownTapDownDetailsonlytop EdgeInsetscolorsinMillisecondsmaprangefoldStackfitStackFit passthroughchildrenLinearProgressIndicator valueColorAlwaysStoppedAnimation bufferedColorbackgroundColor playedColorColors transparentPaddingpaddingallowScrubbingclosedCaptionFile TextStyletextisEmptyshrinkDefaultTextStyleofstylefontSizecolorwhiteAlign alignment Alignment bottomCenterbottom DecoratedBox decoration BoxDecoration borderRadius BorderRadiuscircular symmetric horizontalText ValueNotifierObjectWidgetsBindingObserverStatefulWidgetStateStatelessWidget®Ùay('zͬ=â¨Ò‚0‚ðDataSourceType DurationRange VideoFormatVideoPlayerOptionsVideoPlayerWebOptionsVideoPlayerWebOptionsControls VideoViewType�ÖLpackage:video_player_platform_interface/video_player_platform_interface.dart‚ósrc/closed_caption_file.dart€� dart:async€¥dart:io€Ñ€Ùmax€·€É€Ìmath€Ì dart:math€Ýpackage:flutter/foundation.dart�package:flutter/material.dart�/package:flutter/services.dart�WLpackage:video_player_platform_interface/video_player_platform_interface.dart�¯src/closed_caption_file.dartÀP7ÀŸ›„Ë&p€Ž€�€¤€¶€Û€Ü��.�V�­�®�Õ�Ö‚,‚5‚M‚d‚y‚•‚´‚Û‚ò‚󃃃JƒKƒzƒÆƒû„I„[„w„§„«„ńDŽȅ…8…C…\…­…膆†:†]†~†¦†Ó†ó‡‡+‡I‡`‡~‡Ÿ‡º‡Ø‡Þ‡ßˆˆGˆ‚ˆƒˆÀˆü‰‰)‰G‰s‰|‰}‰ÐŠ"ŠnŠoŠ–ŠœŠÝŠøŠù‹‹9‹:‹ˆ‹Ž‹ÚŒŒ+Œ,Œ”ŒšŒ»ŒÛŒÜ��'�(�b�z�{�Ÿ�·�¸�莎Ž-ŽDŽEŽnŽŒŽ�ŽºŽÀŽí���A�G�’�½�×�Ø����h�ˆ�‰�Ø�ô�õ‘D‘ˆ‘¹‘º‘æ‘ì’’+’d’ž’¹’ú“ ““K“g“y““—“›“œ“ì”1”O”g”w”�”¥””å”þ••(•?•S•n•‹•ĕەâ•ÿ–*–I–t–œ–Ö——;—i———Ë—ð˜*˜s˜‹˜Â˜ã™ ™>™E™I™J™V™l™©™É™ášššIšxš¢šÄšæ› ›(›R›‚›©›­›®›º›Þ›þœ!œOœwœŸœÅœ÷�)�S�}�«�Ïžž9žYž•žÇžóžôŸŸ#Ÿ1Ÿ?ŸLŸ_ŸmŸ|Ÿ‹ŸœŸ¨Ÿ»ŸÑŸÛŸó      l z ~ ± µ¡¡ ¡I¡M¡€¡Æ¢¢¢h¢¸¢Ú¢à£1££œ£»£Ò£ä¤¤3¤b¤—¤Å¤ß¥¥M¥N¥’¥˜¥Û¥á¦/¦V¦\¦­¦û§§§X§ƒ§Á§â§ù¨¨@¨]¨Ž¨½¨ò©"©9©x©y©½©Ãªª ªZª�ª‡ªÁªì«««4«f«ƒ«´«ã¬¬<¬l¬ƒ¬Â¬Ã­ ­­b­Ä­â­ó®%®B®s®¢®×¯¯A¯X¯r¯±¯²°°°A°j°Ž°¤°Ö°ó±"±1±k±¶±À±õ² ²S²j²„²³²ò²ó³C³u³�³‘³Î³þ´(´Q´R´›´Æ´ç´èµ-µHµoµpµÎµþµÿ¶N¶g¶h¶˜¶ž¶ê· · ·B·k·|·˜·¿·ò¸$¸%¸\¸q¸¡¸Ë¸Ì¹¹2¹G¹h¹i¹º¹ÞººEºiº¦º¬ºÒºþºÿ»+»I»j»–»Â»ß»û¼¼)¼U¼ƒ¼ž¼À¼ä¼ï½½;½f½�½¥½°½Ö¾¾3¾N¾Y¾_¾`¾§¾Ð¾ê¾ñ¾ò¿'¿Z¿…¿Ž¿”¿•¿¥¿ðÀ@À@8À@}À@~À@¤À@àÀAÀA#ÀALÀAUÀA[ÀA\ÀA‡ÀA ÀA°ÀA¸ÀA¹ÀAÚÀBÀB%ÀBKÀBiÀB£ÀBÖÀBúÀCÀC'ÀC9ÀCiÀC·ÀCýÀDKÀDˆÀD•ÀDÈÀEÀEÀEOÀEjÀE„ÀE¡ÀEÈÀFÀFaÀF¯ÀFæÀG,ÀGaÀGŽÀGÊÀGöÀH+ÀHUÀH‹ÀH½ÀHçÀI ÀI5ÀIWÀIfÀIyÀI¹ÀIÅÀIêÀIûÀJÀJ ÀJ ÀJ6ÀJ|ÀJ‚ÀJƒÀJ¨ÀJäÀKÀK2ÀKbÀK”ÀKœÀK¢ÀK£ÀKÑÀKôÀL,ÀLUÀLYÀLZÀLfÀL‡ÀLžÀL¬ÀL²ÀL³ÀLÙÀMÀMÀM7ÀMQÀM}ÀM´ÀM¼ÀMáÀMçÀMÿÀNÀNÀNÀN9ÀN?ÀN�ÀN–ÀNæÀO/ÀO?ÀO]ÀO‰ÀO¬ÀO²ÀOßÀOüÀPÀPÀPNÀPrÀP¢ÀPÒÀPíÀPñÀPòÀQ ÀQ)ÀQWÀQtÀQxÀQyÀQ ÀQÇÀQÕÀQÛÀR"ÀR&ÀR'ÀRPÀRwÀR…ÀR‹ÀR¦ÀRØÀRÙÀRñÀS4ÀSIÀSYÀStÀS†ÀS�ÀSÆÀSéÀSûÀTÀT+ÀT5ÀT6ÀTƒÀTÑÀTçÀU ÀUÀU/ÀUbÀUhÀUlÀUmÀU“ÀUºÀUÈÀUÎÀVÀVÀVÀVCÀVjÀVxÀV~ÀVÀVËÀWÀWIÀWeÀWsÀWyÀWzÀWËÀWÏÀWÐÀWùÀX"ÀX9ÀXLÀXRÀXŠÀXŽÀX�ÀXÔÀYÀY!ÀYqÀY�ÀY¾ÀYåÀYóÀYùÀZÀZ?ÀZjÀZŠÀZ�ÀZÌÀZëÀZïÀZðÀ[À[À[nÀ[‚À[²À[îÀ\À\ À\ À\6À\<À\…À\ÒÀ\ØÀ]À]LÀ]˜À^0À^�À^ÎÀ_À_,À_|À_ÉÀ`À`@À`vÀ`‹À`¬À`»À`úÀaÀa ÀaAÀaPÀa¡ÀaªÀa°Àa±ÀaãÀbÀbÀb Àb(Àb.ÀbˆÀb¸Àb¾ÀbëÀc1Àc’ÀcõÀd Àd<ÀdYÀd‡ÀdŽÀd’Àd“ÀdÚÀdàÀe+ÀeLÀeRÀe¢Àe³ÀeàÀfÀf!Àf'Àf(ÀfmÀf¶ÀføÀgHÀg`ÀghÀgnÀgoÀgˆÀgŒÀg�ÀgÖÀh Àh0Àh4Àh5ÀhWÀh]Àh¤ÀhÉÀhûÀiÀiDÀivÀizÀi{ÀiªÀiÜÀièÀjÀj^ÀjbÀjcÀj�ÀjßÀk0Àk_Àk„Àk¥Àk«ÀkÇÀkáÀl Àl8Àl?ÀlCÀlDÀlPÀlÀlÔÀm#Àm;ÀmaÀmgÀmkÀmlÀm»Àm½Àm¾Àn Àn<Àn=ÀndÀn�Àn�Àn¦ÀnÕÀnÙÀnÚÀnæÀo#ÀoPÀoŒÀo§ÀoÜÀpÀpÀp$Àp*Àp.Àp/ÀpBÀptÀpxÀpzÀp{ÀpºÀpåÀq.ÀqaÀqbÀq°ÀqÃÀqíÀqîÀqúÀr5Àr7Àr8ÀrmÀrƒÀr¨ÀràÀsÀsÀs9ÀsCÀsIÀsMÀsNÀsZÀsoÀs†Às²ÀsýÀtBÀt€Àt„Àt…Àt‘ÀtÁÀtçÀu+ÀuWÀu•Àu™ÀušÀu¦Àu¹ÀuúÀvÀvÀvÀv ÀvGÀvŒÀv¢ÀvÆÀwÀwBÀwuÀw‚Àw�Àw‘Àw“Àw”ÀwÍÀxÀxdÀxeÀx{Àx‘Àx’ÀxžÀxÅÀxÞÀxòÀxøÀy;Ày?ÀyAÀyBÀy�Ày²Ày¶ÀzÀzÀzdÀzjÀz¹À{ À{À{À{mÀ{¶À{ÍÀ{ÓÀ|#À|qÀ|­À|ËÀ}À}IÀ}ŽÀ}”À}•À}äÀ~5À~CÀ~^À~_À~®À~÷ÀÀ+À,À|ÀÊÀ€À€%À€'À€(À€[À€ˆÀ€ÇÀ€ÍÀ�À�/À�GÀ�VÀ�oÀ��À�“À�”À�ÙÀ�ïÀ�ðÀ‚<À‚fÀ‚gÀ‚sÀ‚²À‚´À‚µÀ‚îÀƒÀƒÀƒRÀƒSÀƒ_Àƒ†Àƒ¿À„À„DÀ„~À„ÄÀ„çÀ„íÀ„îÀ… À…2À…MÀ…‡À…¶À…ÈÀ…ÒÀ†À†3À†QÀ†[À†dÀ† À†ÏÀ†áÀ†ëÀ‡#À‡,À‡bÀ‡‡À‡ÍÀ‡êÀ‡ôÀ‡ýÀˆ)ÀˆXÀˆjÀˆtÀˆ¬ÀˆµÀˆ¼ÀˆÀÀˆÂÀˆÃÀ‰À‰À‰cÀ‰ƒÀ‰‡À‰ØÀŠÀŠ6ÀЇÀŠ©ÀНÀŠýÀ‹LÀ‹aÀ‹�À‹˜À‹§À‹ÖÀ‹øÀŒ,ÀŒ2ÀŒ3ÀŒ€ÀŒŽÀŒ¸ÀŒ¹ÀŒñÀŒ÷À�+À�OÀ�PÀ�žÀ�ÛÀ�áÀ�úÀŽÀŽÀŽdÀŽ–ÀŽœÀŽºÀŽÖÀŽ×ÀŽãÀ�4À�6À�7À�‚À�¿À�ÀÀ�óÀ�ôÀ�À�+À�bÀ�jÀ�nÀ�oÀ�{À��À�§À�ÞÀ�âÀ�ãÀ�ïÀ‘À‘<À‘QÀ‘UÀ‘VÀ‘bÀ‘‰À‘­À‘×À’À’aÀ’bÀ’„À’žÀ’²À’ÜÀ“*À“UÀ“qÀ“’À“µÀ“ÑÀ“ôÀ”À”bÀ”—À”¤À”ÇÀ•À•RÀ•ƒÀ•�À•›À•¤À•±À•äÀ–+À–\À–eÀ–kÀ–ŸÀ–¾À–ÞÀ–åÀ—À—"À—BÀ—jÀ—sÀ—€À—¦À—¬À—°À—²À—³À—ðÀ—ôÀ˜2À˜6À˜†À˜“À˜—À˜ÙÀ™À™ À™À™À™'À™EÀ™eÀ™ À™¨À™°À™ÞÀšÀš?ÀšEÀš‚ÀšÁÀšÂÀ›À›(À›bÀ›xÀ›yÀ›¹À›¿Àœ Àœ&ÀœDÀœEÀœQÀœxÀœœÀœÄÀœêÀœðÀœñÀ�À�/À�LÀ�_À�žÀ�ŸÀ�±À�ÚÀ�ðÀž&ÀžCÀžhÀž”ÀžÊÀž×ÀžñÀŸ3ÀŸmÀŸzÀŸ…ÀŸŽÀŸ•ÀŸ™ÀŸ›€�€¤€¶€Ì€Ñ€Ù€Ü��.�V�®�Ö‚0‚ð‚ó …ð†††††#†#†(†>†>†C†a†a†f†‚†‚"†‡†ª†ª'†¯†×†×†Ü†÷†÷†ü‡‡‡‡/‡/‡4‡M‡M‡R‡d‡d‡i‡‚‡‚‡‡‡£‡£‡¨‡¾‡¾‡Ã†/†3†4†N†V†W†p†w†x†—†Ÿ† †º†Ï†Ð†À†Î†Á†ì‡‡$‡B‡[‡y‡œ‡Ñ…^…^‚€‡/// Constructs a video with the given values. Only [duration] is required. The /// rest will initialize with default values when unset.ˆ&ˆ6ˆD ˆMˆQˆˆZˆRˆ\ˆdˆeˆxˆkˆz‡á‡á€ ˆ7‰1‰@‰_‰O‰aˆ…ˆ…€öˆÙ:/// Returns an instance with the given [errorDescription].ŠSŠ8‰€íŠ8€ /// This constant is just to indicate that parameter is not passed to [copyWith] /// workaround for this issue https://github.com/dart-lang/language/issues/2009ŠîŠq€…Šîg/// The total duration of the video. /// /// The value is only meaningful when [isInitialized] is true.‹/Šû<‹/"/// The current playback position.Œ"‹<€íŒ"€Ï/// The [Caption] that should be displayed based on the current [position]. /// /// This field will never be null. If there is no caption for the current /// [position], this will be a [Caption.none] object.ŒÌŒ.€«ŒÌ€ˆ/// The [Duration] that should be used to offset the current [position] to get the correct [Caption]. /// /// Defaults to Duration.zero.�ŒÞG�"/// The currently buffered ranges.�o�*N�o7/// True if the video is playing. False if it's paused.�¬�}8�¬!/// True if the video is looping.�õ�ºF�õ-/// True if the video is currently buffering.Ž<Ž=Ž<'/// The current volume of the playback.Ž}ŽGCŽ}&/// The current speed of the playback.ŽýŽ�~ŽýY/// A description of the error if present. /// /// If [hasError] is false this is `null`.�Ê�€Ã�Ê€¤/// True if video has finished playing to end. /// /// Reverts to false if video position changes, or video begins playing. /// Does not update if video is looping.��Ú?�-/// The [size] of the currently loaded video.�t�h�tI/// Degrees to rotate the video (clockwise) so it is displayed correctly.�å�‹g�åL/// Indicates whether or not the video has been loaded and is ready to play.�÷�÷€Á‘“€Ž/// Indicates whether or not the video is in an error state. If this is true /// [errorDescription] should have information about the problem.‘¼‘¼�Þ’«€×/// Returns [size.width] / [size.height]. /// /// Will return `1.0` if: /// * [isInitialized] is `false` /// * [size.width], or [size.height] is equal to `0.0` /// * aspect ratio would be less than or equal to `0.0`žöž÷žöžö�%Ÿ ”S”S”]”k”k ”q”{”{”…”“”“”œ”©”©”³”ƔƔ۔é”é”ï•••••••,•,•2•C•C•K•W•W•_•r•r•w•�•�3•—•ȕȕΕª“ž“ž…ª”D€�/// Returns a new instance that has the same values as this current instance, /// except for any overrides passed in as arguments to [copyWith].™L™M™L™L‚`™_›Í›Í ›Ô›°›±›°›°ƒB›Ê…8…9„ȄțU…Io/// The duration, current position, buffering state, error state and settings /// of a [VideoPlayerController].£ž£³£¹£¿£¿£Ä£Ö£Ö £Û£è£è,¤¤¤¤¤7¤7)¤<#¤G¤T¤U¤‚¤i¤„¤­¤ž¤¯¤½¤¾¤×¤Ì¤Ù¤ò¤æ¤ô¥ ¥ ¤ú¥ ¤û¥¥¥¥J¥¥!¥1¥I¥:¥2¥<¥D¥E¡È¡Èƒ„£´�Ã/// 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.§Ã§Ø§à§æ§æ§ë§ý§ý¨¨¨,¨-¨D¨D¨I¨a¨a+¨f¨’¨’)¨—&§…§†§�§¿§‘¨t¨Š¨‹¨z¨‰¨{¨ƒ¨¢¨¯¨°¨Ý¨Ä¨ß©¨ù© ©©©1©)©3©@©E©u©F©L©\©t©e©]©g©o©p¥P¥P„'§Ù‚/// 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].ªî««««««#«#«(«8«8,«S«j«j«o«‡«‡+«Œ«¸«¸)«½(«š«°«±« «¯«¡«©«È«Õ«Ö¬«ê¬¬*¬¬,¬/¬0¬8¬9¬R¬C¬T¬b¬c¬{¬s¬}¬Š¬�¬¿¬�¬–¬¦¬¾¬¯¬§¬±¬¹¬º©{©{ƒF«�`/// 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].­Æ­Û­à­æ­æ ­ë­÷­÷,®®)®)®.®F®F+®K®w®w)®|4®Y®o®p®_®n®`®h®‡®”®•®Â®©®Ä®é®Þ®ë®î®ï®ó¯®ô®ø®ù¯¯¯¯¯¯¯*¯¯,¯:¯;¯P¯H¯R¯j¯_¯l¯y¯~¯®¯¯…¯•¯­¯ž¯–¯ ¯¨¯©¬Å¬Å‚ë­Ü€ø/// 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).°l°�°Œ°’°’°–°¨°¨,°Ã°Ú°Ú°ß°÷°÷)°ü7±±±±)±/±i±½±P±:±S±a±b±t±à±Ç±â²±ü² ²²²²²6²'²8²F²G²b²Z²d²|²q²~²—²‹²™²¯²°²Ÿ²®² ²¨²º²¿²ï²À²Æ²Ö²î²ß²×²á²é²ê¯´¯´ƒ=°‚€¯/// 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.³„²õ€™³„}/// The URI to the video file. This will be in different formats depending on /// the [DataSourceType] of the original video.´D³“€¼´D€�/// HTTP headers used for the request to the [dataSource]. /// Only for [VideoPlayerController.network]. /// Always empty for other video types.´Û´T€‘´Û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.µêµr€Šµê[/// 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.·¶j€ž·{/// The requested display mode for the video. /// /// Platforms that do not support the request view type will ignore this.·(· 3·(·W·D%·W·t·m ·t·‘·ƒ·~·ƒ·«·š#·«·Þ·Á/·Þ¸·ô.¸¸^¸_¸�¸ž¸„¸'x¸„4/// The id of a player that hasn't been initialized.¸³¸§¸£&¸§¹4¹5¸Î¸Î€™¹Qa/// This is just exposed for testing. It shouldn't be used by anyone depending /// on the plugin.ÀWÒÀWÒ€»ÀX&/// The position in the current video.Àg�Àg�€¤Àg÷F/// Returns the file containing closed captions for the video, if any.ÀmnÀmnLÀmw¹k¹k’í¹ÉN/// Attempts to open the given [dataSource] and load metadata about the video.ÀL\ÀL]ÀL\ÀL\�»ÀLuÀNÀN�äÀ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‘ÀPÀP€íÀP�l/// Sets whether or not the video should loop after playing once. See also /// [VideoPlayerValue.isLooping].ÀPôÀPô€ƒÀQ/// Pauses the video.ÀQ{ÀQ{€ªÀQˆÀR)ÀR)ƒBÀR6ÀUoÀUo€¥ÀU|ÀVÀV�¶ÀV%ÀY£ÀY£ÀY¬ÀX‘ÀX‘‚]À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.À[›À[› À[¢ÀZòÀZò�À[‘€‰/// Sets the audio volume of [this]. /// /// [volume] indicates a value between 0.0 (silent) and 1.0 (full volume) on a /// linear scale.À``À`` À`gÀ\À\…øÀ`O„/// 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.Àd Àd ÀdÀb Àb ‚†Àcü�Ù/// 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.ÀeËÀeËÀeÔÀd•Àd•‚öÀe½�/// 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].ÀhÍÀhÍ,ÀhèÀh7Àh7�BÀh³h/// Sets a closed caption file. /// /// If [closedCaptionFile] is null, closed captions will be removed.Ài®Ài®,ÀiÉÀi}Ài}€äÀiŠÀjzÀjzÀjƒÀjeÀje�ÝÀjjÀlfÀlfÀlsÀlFÀlGÀlFÀlF�$ÀlW  À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.ÀnÀn(Àn)Àn)Àn.ÀnÀn-Àn]ÀnDÀn?#ÀnDÀn‚Ànf'Àn‚Àn’Àn’FÀn—ÀoÀoÀoÀnÜÀnÝÀnÜÀnÜ�QÀníÀp1Àp1FÀp6Àm¾Àm¾‚»ÀmÄÀq6ÀqAÀqBÀqBÀqGÀqTÀqT ÀqZÀpçÀpçyF/// Uses the given [controller] for all video rendered in this widget.ÀqáÀqd€‡Àqá\/// The [VideoPlayerController] responsible for the video being rendered in /// this widget.ÀqðÀqñÀqðÀqðDÀrÀp{Àp{�»ÀpÀ>/// Widget that displays the video controlled by [controller].ÀrxÀroÀrxÀr…Àr…€ÇÀrŠÀsPÀsQÀsPÀsP�3ÀsaÀt¨Àt¨Àt´Àt‡ÀtˆÀt‡Àt‡�Àt˜ÀuœÀu�ÀuœÀuœvÀu­Àv/Àv/Àv<ÀvÀvÀvÀv�zÀv)Àr8Àr8…ZÀr>ÀwÕÀwíÀwïÀwïÀwýÀxÀxÀx Àx#Àx)Àx<ÀxaÀx8Àx3Àx*Àx5Àx;Àx>ÀwÏÀwÏ€”ÀxqÀxgÀxqÀxŠÀx}ÀxŠÀx­Àx­ÀxºÀx”Àx•Àx”Àx”€ªÀx§Àw”Àw”�¬ÀwšÀ|µÀ|ÈÀ|ÏÀ|Ï7À|ÔÀ} À} ;À}À}MÀ}M?À}RÀ|âÀ|èÀ|íÀ|îÀ|öÀ}À|÷À|üÀ|ÿÀ}À}!À}'À},À}-À}5À}FÀ}6À}:À}>À}CÀ}dÀ}jÀ}oÀ}pÀ}xÀ}‹À}yÀ}~À}ƒÀ}ˆÀz!Àz!ƒr‚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.À~QÀ}—€ÅÀ~Q€§/// [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.ÀÀ~a€ÈÀ€¨/// [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.ÀyBÀyB†äÀz €À/// 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.À�7À�DÀ�KÀ�K À�QÀ�ZÀ�ZÀ�hÀ�sÀ�sÀ��À€ŠÀ€Š�€ž/// Create a [VideoScrubber] handler with the given [child]. /// /// [controller] is the [VideoPlayerController] that will be controlled by /// this scrubber.À�èÀ�–WÀ�èB/// The widget that will be displayed inside the gesture detector.À‚ZÀ�òrÀ‚ZI/// The [VideoPlayerController] that will be controlled by this scrubber.À‚iÀ‚jÀ‚iÀ‚iHÀ‚ŠÀ€(À€(‚‹À€a2/// A scrubber to control [VideoPlayerController]sÀƒ À‚õÀ‚ð"À‚õÀƒÀƒ:Àƒ1ÀƒnÀƒnÀƒ{ÀƒUÀƒVÀƒUÀƒU…jÀƒhÀ‚µÀ‚µ† À‚»À‹iÀ‹À‹…À‹…À‹ŠÀ‹œÀ‹œ À‹¢À‹«À‹«)À‹°À‹ÚÀ‹ÚÀ‹èÀ‹üÀ‹ü.ÀŒ À‹¹À‹¿À‹ÒÀ‹ÓÀŒ ÀŒÀŒÀŒÀŒ ÀŒ)ÀŒ$ÀŒ!ÀŒ&ÀŠ8ÀŠ8�ù�/// Construct an instance that displays the play/buffering status of the video /// controlled by [controller]. /// /// Defaults will be used for everything except [controller] if they're not /// provided. [allowScrubbing] defaults to false, and [padding] will default /// to `top: 5.0`.ÀŒ¬ÀŒ5€�ÀŒ¬V/// The [VideoPlayerController] that actually associates a video with this /// widget.À�GÀŒ»€’À�Gk/// The default colors used throughout the indicator. /// /// See [VideoProgressColors] for default values.ÀŽÀ�R€ÃÀŽ€¡/// When true, the widget will detect touch input and try to seek the video /// accordingly. The widget ignores such input when false. /// /// Defaults to false.ÀŽÍÀŽ€ºÀŽÍ€™/// This allows for visual padding around the progress indicator that can /// still detect gestures via [allowScrubbing]. /// /// Defaults to `top: 5.0`.ÀŽÙÀŽÚÀŽÙÀŽÙZÀ�ÀˆÃÀˆÃ†rÀŠ�[ /// VideoPlayer(_controller), /// ClosedCaption(text: _controller.value.caption.text), /// ]), /// ```ƒKƒK�{ƒcƒ0ƒ-ƒ0„Ë&p€Ž€�€¤€¶€Û€Ü��.�V�­�®�Õ�Ö‚,‚5‚M‚d‚y‚•‚´‚Û‚ò‚󃃃JƒKƒzƒÆƒû„I„[„w„§„«„ńDŽȅ…8…C…\…­…膆†:†]†~†¦†Ó†ó‡‡+‡I‡`‡~‡Ÿ‡º‡Ø‡Þ‡ßˆˆGˆ‚ˆƒˆÀˆü‰‰)‰G‰s‰|‰}‰ÐŠ"ŠnŠoŠ–ŠœŠÝŠøŠù‹‹9‹:‹ˆ‹Ž‹ÚŒŒ+Œ,Œ”ŒšŒ»ŒÛŒÜ��'�(�b�z�{�Ÿ�·�¸�莎Ž-ŽDŽEŽnŽŒŽ�ŽºŽÀŽí���A�G�’�½�×�Ø����h�ˆ�‰�Ø�ô�õ‘D‘ˆ‘¹‘º‘æ‘ì’’+’d’ž’¹’ú“ ““K“g“y““—“›“œ“ì”1”O”g”w”�”¥””å”þ••(•?•S•n•‹•ĕەâ•ÿ–*–I–t–œ–Ö——;—i———Ë—ð˜*˜s˜‹˜Â˜ã™ ™>™E™I™J™V™l™©™É™ášššIšxš¢šÄšæ› ›(›R›‚›©›­›®›º›Þ›þœ!œOœwœŸœÅœ÷�)�S�}�«�Ïžž9žYž•žÇžóžôŸŸ#Ÿ1Ÿ?ŸLŸ_ŸmŸ|Ÿ‹ŸœŸ¨Ÿ»ŸÑŸÛŸó      l z ~ ± µ¡¡ ¡I¡M¡€¡Æ¢¢¢h¢¸¢Ú¢à£1££œ£»£Ò£ä¤¤3¤b¤—¤Å¤ß¥¥M¥N¥’¥˜¥Û¥á¦/¦V¦\¦­¦û§§§X§ƒ§Á§â§ù¨¨@¨]¨Ž¨½¨ò©"©9©x©y©½©Ãªª ªZª�ª‡ªÁªì«««4«f«ƒ«´«ã¬¬<¬l¬ƒ¬Â¬Ã­ ­­b­Ä­â­ó®%®B®s®¢®×¯¯A¯X¯r¯±¯²°°°A°j°Ž°¤°Ö°ó±"±1±k±¶±À±õ² ²S²j²„²³²ò²ó³C³u³�³‘³Î³þ´(´Q´R´›´Æ´ç´èµ-µHµoµpµÎµþµÿ¶N¶g¶h¶˜¶ž¶ê· · ·B·k·|·˜·¿·ò¸$¸%¸\¸q¸¡¸Ë¸Ì¹¹2¹G¹h¹i¹º¹ÞººEºiº¦º¬ºÒºþºÿ»+»I»j»–»Â»ß»û¼¼)¼U¼ƒ¼ž¼À¼ä¼ï½½;½f½�½¥½°½Ö¾¾3¾N¾Y¾_¾`¾§¾Ð¾ê¾ñ¾ò¿'¿Z¿…¿Ž¿”¿•¿¥¿ðÀ@À@8À@}À@~À@¤À@àÀAÀA#ÀALÀAUÀA[ÀA\ÀA‡ÀA ÀA°ÀA¸ÀA¹ÀAÚÀBÀB%ÀBKÀBiÀB£ÀBÖÀBúÀCÀC'ÀC9ÀCiÀC·ÀCýÀDKÀDˆÀD•ÀDÈÀEÀEÀEOÀEjÀE„ÀE¡ÀEÈÀFÀFaÀF¯ÀFæÀG,ÀGaÀGŽÀGÊÀGöÀH+ÀHUÀH‹ÀH½ÀHçÀI ÀI5ÀIWÀIfÀIyÀI¹ÀIÅÀIêÀIûÀJÀJ ÀJ ÀJ6ÀJ|ÀJ‚ÀJƒÀJ¨ÀJäÀKÀK2ÀKbÀK”ÀKœÀK¢ÀK£ÀKÑÀKôÀL,ÀLUÀLYÀLZÀLfÀL‡ÀLžÀL¬ÀL²ÀL³ÀLÙÀMÀMÀM7ÀMQÀM}ÀM´ÀM¼ÀMáÀMçÀMÿÀNÀNÀNÀN9ÀN?ÀN�ÀN–ÀNæÀO/ÀO?ÀO]ÀO‰ÀO¬ÀO²ÀOßÀOüÀPÀPÀPNÀPrÀP¢ÀPÒÀPíÀPñÀPòÀQ ÀQ)ÀQWÀQtÀQxÀQyÀQ ÀQÇÀQÕÀQÛÀR"ÀR&ÀR'ÀRPÀRwÀR…ÀR‹ÀR¦ÀRØÀRÙÀRñÀS4ÀSIÀSYÀStÀS†ÀS�ÀSÆÀSéÀSûÀTÀT+ÀT5ÀT6ÀTƒÀTÑÀTçÀU ÀUÀU/ÀUbÀUhÀUlÀUmÀU“ÀUºÀUÈÀUÎÀVÀVÀVÀVCÀVjÀVxÀV~ÀVÀVËÀWÀWIÀWeÀWsÀWyÀWzÀWËÀWÏÀWÐÀWùÀX"ÀX9ÀXLÀXRÀXŠÀXŽÀX�ÀXÔÀYÀY!ÀYqÀY�ÀY¾ÀYåÀYóÀYùÀZÀZ?ÀZjÀZŠÀZ�ÀZÌÀZëÀZïÀZðÀ[À[À[nÀ[‚À[²À[îÀ\À\ À\ À\6À\<À\…À\ÒÀ\ØÀ]À]LÀ]˜À^0À^�À^ÎÀ_À_,À_|À_ÉÀ`À`@À`vÀ`‹À`¬À`»À`úÀaÀa ÀaAÀaPÀa¡ÀaªÀa°Àa±ÀaãÀbÀbÀb Àb(Àb.ÀbˆÀb¸Àb¾ÀbëÀc1Àc’ÀcõÀd Àd<ÀdYÀd‡ÀdŽÀd’Àd“ÀdÚÀdàÀe+ÀeLÀeRÀe¢Àe³ÀeàÀfÀf!Àf'Àf(ÀfmÀf¶ÀføÀgHÀg`ÀghÀgnÀgoÀgˆÀgŒÀg�ÀgÖÀh Àh0Àh4Àh5ÀhWÀh]Àh¤ÀhÉÀhûÀiÀiDÀivÀizÀi{ÀiªÀiÜÀièÀjÀj^ÀjbÀjcÀj�ÀjßÀk0Àk_Àk„Àk¥Àk«ÀkÇÀkáÀl Àl8Àl?ÀlCÀlDÀlPÀlÀlÔÀm#Àm;ÀmaÀmgÀmkÀmlÀm»Àm½Àm¾Àn Àn<Àn=ÀndÀn�Àn�Àn¦ÀnÕÀnÙÀnÚÀnæÀo#ÀoPÀoŒÀo§ÀoÜÀpÀpÀp$Àp*Àp.Àp/ÀpBÀptÀpxÀpzÀp{ÀpºÀpåÀq.ÀqaÀqbÀq°ÀqÃÀqíÀqîÀqúÀr5Àr7Àr8ÀrmÀrƒÀr¨ÀràÀsÀsÀs9ÀsCÀsIÀsMÀsNÀsZÀsoÀs†Às²ÀsýÀtBÀt€Àt„Àt…Àt‘ÀtÁÀtçÀu+ÀuWÀu•Àu™ÀušÀu¦Àu¹ÀuúÀvÀvÀvÀv ÀvGÀvŒÀv¢ÀvÆÀwÀwBÀwuÀw‚Àw�Àw‘Àw“Àw”ÀwÍÀxÀxdÀxeÀx{Àx‘Àx’ÀxžÀxÅÀxÞÀxòÀxøÀy;Ày?ÀyAÀyBÀy�Ày²Ày¶ÀzÀzÀzdÀzjÀz¹À{ À{À{À{mÀ{¶À{ÍÀ{ÓÀ|#À|qÀ|­À|ËÀ}À}IÀ}ŽÀ}”À}•À}äÀ~5À~CÀ~^À~_À~®À~÷ÀÀ+À,À|ÀÊÀ€À€%À€'À€(À€[À€ˆÀ€ÇÀ€ÍÀ�À�/À�GÀ�VÀ�oÀ��À�“À�”À�ÙÀ�ïÀ�ðÀ‚<À‚fÀ‚gÀ‚sÀ‚²À‚´À‚µÀ‚îÀƒÀƒÀƒRÀƒSÀƒ_Àƒ†Àƒ¿À„À„DÀ„~À„ÄÀ„çÀ„íÀ„îÀ… À…2À…MÀ…‡À…¶À…ÈÀ…ÒÀ†À†3À†QÀ†[À†dÀ† À†ÏÀ†áÀ†ëÀ‡#À‡,À‡bÀ‡‡À‡ÍÀ‡êÀ‡ôÀ‡ýÀˆ)ÀˆXÀˆjÀˆtÀˆ¬ÀˆµÀˆ¼ÀˆÀÀˆÂÀˆÃÀ‰À‰À‰cÀ‰ƒÀ‰‡À‰ØÀŠÀŠ6ÀЇÀŠ©ÀНÀŠýÀ‹LÀ‹aÀ‹�À‹˜À‹§À‹ÖÀ‹øÀŒ,ÀŒ2ÀŒ3ÀŒ€ÀŒŽÀŒ¸ÀŒ¹ÀŒñÀŒ÷À�+À�OÀ�PÀ�žÀ�ÛÀ�áÀ�úÀŽÀŽÀŽdÀŽ–ÀŽœÀŽºÀŽÖÀŽ×ÀŽãÀ�4À�6À�7À�‚À�¿À�ÀÀ�óÀ�ôÀ�À�+À�bÀ�jÀ�nÀ�oÀ�{À��À�§À�ÞÀ�âÀ�ãÀ�ïÀ‘À‘<À‘QÀ‘UÀ‘VÀ‘bÀ‘‰À‘­À‘×À’À’aÀ’bÀ’„À’žÀ’²À’ÜÀ“*À“UÀ“qÀ“’À“µÀ“ÑÀ“ôÀ”À”bÀ”—À”¤À”ÇÀ•À•RÀ•ƒÀ•�À•›À•¤À•±À•äÀ–+À–\À–eÀ–kÀ–ŸÀ–¾À–ÞÀ–åÀ—À—"À—BÀ—jÀ—sÀ—€À—¦À—¬À—°À—²À—³À—ðÀ—ôÀ˜2À˜6À˜†À˜“À˜—À˜ÙÀ™À™ À™À™À™'À™EÀ™eÀ™ À™¨À™°À™ÞÀšÀš?ÀšEÀš‚ÀšÁÀšÂÀ›À›(À›bÀ›xÀ›yÀ›¹À›¿Àœ Àœ&ÀœDÀœEÀœQÀœxÀœœÀœÄÀœêÀœðÀœñÀ�À�/À�LÀ�_À�žÀ�ŸÀ�±À�ÚÀ�ðÀž&ÀžCÀžhÀž”ÀžÊÀž×ÀžñÀŸ3ÀŸmÀŸzÀŸ…ÀŸŽÀŸ•ÀŸ™ÀŸ›_lastVideoPlayerPlatform_videoPlayerPlatformVideoPlayerValueVideoPlayerController_VideoAppLifeCycleObserver VideoPlayer_VideoPlayerState_VideoPlayerWithRotationVideoProgressColors VideoScrubber_VideoScrubberStateVideoProgressIndicator_VideoProgressIndicatorState ClosedCaptionÕ¥