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‡BÀÁ|4[íÊK+ïD@Œ‚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ÀO‹ÀŸ›„Ë&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‚ð‚ó „È›U…I…Io/// The duration, current position, buffering state, error state and settings /// of a [VideoPlayerController].…^‚…ð…ð†€‡/// Constructs a video with the given values. Only [duration] is required. The /// rest will initialize with default values when unset.††††#†)†(†>†D†C†a†g†f†‚"†ˆ†‡†ª'†°†¯†×†Ý†Ü†÷†ý†ü‡‡‡‡/‡5‡4‡M‡S‡R‡d‡j‡i‡‚‡ˆ‡‡‡£‡©‡¨‡¾‡Ä‡Ã†/†3†4†N†V†W†p†w†x†—†Ÿ† †º†Ï†Ð†À†Î†Á†ì‡‡$‡B‡[‡y‡œ‡Ñ‡á€ ˆ&ˆ6ˆ7ˆDˆ7‰1‰@‰_‰O‰a‰€íŠ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ŠSŠ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.�*N�o�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.�h�t�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`žö�%Ÿ Ÿ žöž÷“ž…ª”D”D€�/// Returns a new instance that has the same values as this current instance, /// except for any overrides passed in as arguments to [copyWith].”S”^”]”k ”r”q”{”†”…”“”�”œ”©”´”³”Ɣܔ۔é”ð”ï•• •••••,•3•2•C•L•K•W•`•_•r•x•w•�3•˜•—•ȕϕΕª™L‚`™_™_™L™M›°ƒB›Ê›Ê›Í ›Õ›Ô›°›±…8…9 À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.£¿£Å£Ä£Ö £Ü£Û£è,¤¤¤¤ ¤¤7)¤=¤<#¤G¤T¤U¤‚¤i¤„¤­¤ž¤¯¤½¤¾¤×¤Ì¤Ù¤ò¤æ¤ô¥ ¥ ¤ú¥ ¤û¥¥¥¥J¥¥!¥1¥I¥:¥2¥<¥D¥E¥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].§æ§ì§ë§ý¨¨¨,¨.¨-¨D¨J¨I¨a+¨g¨f¨’)¨˜¨—&§…§†§�§¿§‘¨t¨Š¨‹¨z¨‰¨{¨ƒ¨¢¨¯¨°¨Ý¨Ä¨ß©¨ù© ©©©1©)©3©@©E©u©F©L©\©t©e©]©g©o©p©{ƒ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].««««#«)«(«8,«T«S«j«p«o«‡+«�«Œ«¸)«¾«½(«š«°«±« «¯«¡«©«È«Õ«Ö¬«ê¬¬*¬¬,¬/¬0¬8¬9¬R¬C¬T¬b¬c¬{¬s¬}¬Š¬�¬¿¬�¬–¬¦¬¾¬¯¬§¬±¬¹¬º¬Å‚ë­Æ­Û­Ü­à­Ü€ø/// 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).­æ ­ì­ë­÷,®®®)®/®.®F+®L®K®w)®}®|4®Y®o®p®_®n®`®h®‡®”®•®Â®©®Ä®é®Þ®ë®î®ï®ó¯®ô®ø®ù¯¯¯¯¯¯¯*¯¯,¯:¯;¯P¯H¯R¯j¯_¯l¯y¯~¯®¯¯…¯•¯­¯ž¯–¯ ¯¨¯©¯´ƒ=°l°�°‚°Œ°‚€¯/// 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.°’°—°–°¨,°Ä°Ã°Ú°à°ß°÷)°ý°ü7±±±±)±/±i±½±P±:±S±a±b±t±à±Ç±â²±ü² ²²²²²6²'²8²F²G²b²Z²d²|²q²~²—²‹²™²¯²°²Ÿ²®² ²¨²º²¿²ï²À²Æ²Ö²î²ß²×²á²é²ê²õ€™³„³„}/// 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·(·(·D%·W·W·m ·t·t·~·ƒ·ƒ·‘·š#·«·«·Á/·Þ·Þ·ô.¸¸¸'x¸„¸„4/// The id of a player that hasn't been initialized.¸^¸_¸�¸ž¸£&¸§¸§¸³¸Î€™¹Q¹Qa/// This is just exposed for testing. It shouldn't be used by anyone depending /// on the plugin.¹4¹5ÀWÒ€»ÀXÀX&/// The position in the current video.Àg�€¤Àg÷Àg÷F/// Returns the file containing closed captions for the video, if any.ÀmnLÀmwÀmw¹k’í¹É¹ÉN/// Attempts to open the given [dataSource] and load metadata about the video.ÀL\�»ÀLuÀLuÀ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‘ÀPô€ƒÀQÀQ/// Pauses the video.ÀQ{€ªÀQˆÀQˆÀR)ƒBÀR6ÀR6ÀUo€¥ÀU|ÀU|ÀV�¶À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¬ÀZò�À[‘À[‘€‰/// Sets the audio volume of [this]. /// /// [volume] indicates a value between 0.0 (silent) and 1.0 (full volume) on a /// linear scale.À[› À[£À[¢À\…øÀ`OÀ`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.À`` À`hÀ`gÀb ‚†ÀcüÀ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.Àd ÀdÀdÀd•‚öÀe½À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].ÀeËÀeÕÀeÔÀh7�BÀh³Àh³h/// Sets a closed caption file. /// /// If [closedCaptionFile] is null, closed captions will be removed.ÀhÍ,ÀhéÀhèÀi}€äÀiŠÀiŠÀi®,ÀiÊÀiÉÀje�ÝÀjjÀjjÀjzÀj„ÀjƒÀlF�$ÀlWÀlWÀlfÀltÀlsÀlFÀlGÀm¾‚»ÀmÄÀmÄÀn-ÀnÀnÀn(Àn)Àn/Àn.Àn?#ÀnDÀnDÀn]Ànf'Àn‚Àn‚Àn’FÀn—Àn—ÀnÜ�QÀníÀníÀoÀoÀoÀnÜÀnÝÀp1FÀp6Àp6Àp{�»ÀpÀÀpÀ>/// Widget that displays the video controlled by [controller].ÀpçyÀq6Àq6ÀqAF/// Uses the given [controller] for all video rendered in this widget.ÀqBÀqHÀqGÀqT Àq[ÀqZÀqd€‡ÀqáÀqá\/// The [VideoPlayerController] responsible for the video being rendered in /// this widget.ÀqðDÀrÀrÀqðÀqñÀr8…ZÀr>Àr>ÀroÀrxÀrxÀr…€ÇÀrŠÀrŠÀsP�3ÀsaÀsaÀsPÀsQÀt‡�Àt˜Àt˜Àt¨ÀtµÀt´Àt‡ÀtˆÀuœvÀu­Àu­ÀuœÀu�Àv�zÀv)Àv)Àv/Àv=Àv<ÀvÀvÀw”�¬ÀwšÀwšÀwÏ€”ÀwÕÀwÕÀwíÀwïÀwþÀwýÀxÀxÀx Àx#Àx)Àx<ÀxaÀx8Àx3Àx*Àx5Àx;Àx>ÀxgÀxqÀxqÀx}ÀxŠÀxŠÀx”€ªÀx§Àx§Àx­Àx»ÀxºÀx”Àx•ÀyB†äÀz À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.À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.À|Ï7À|ÕÀ|ÔÀ} ;À}À}À}M?À}SÀ}RÀ|âÀ|èÀ|íÀ|îÀ|öÀ}À|÷À|üÀ|ÿÀ}À}!À}'À},À}-À}5À}FÀ}6À}:À}>À}CÀ}dÀ}jÀ}oÀ}pÀ}xÀ}‹À}yÀ}~À}ƒÀ}ˆÀ}—€ÅÀ~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.À€(‚‹À€aÀ€a2/// A scrubber to control [VideoPlayerController]sÀ€Š�À�7À�7À�D€ž/// Create a [VideoScrubber] handler with the given [child]. /// /// [controller] is the [VideoPlayerController] that will be controlled by /// this scrubber.À�K À�RÀ�QÀ�ZÀ�iÀ�hÀ�sÀ�‚À��À�–WÀ�èÀ�èB/// The widget that will be displayed inside the gesture detector.À�òrÀ‚ZÀ‚ZI/// The [VideoPlayerController] that will be controlled by this scrubber.À‚iHÀ‚ŠÀ‚ŠÀ‚iÀ‚jÀ‚µ† À‚»À‚»À‚ð"À‚õÀ‚õÀƒ Àƒ:Àƒ1Àƒ1ÀƒU…jÀƒhÀƒhÀƒnÀƒ|Àƒ{ÀƒUÀƒVÀˆÃ†rÀŠÀŠ�[ /// 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.Àš™ Àš ÀšŸÀš¤ ÀšªÀš©Àš¯ÀšµÀš´ÀšÄ€²À›rÀ›r€™/// 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.À›{€ÇÀœ9Àœ9€¤/// Specifies how the text in the closed caption should look. /// /// If null, defaults to [DefaultTextStyle.of(context).style] with size 36 /// font colored white.ÀœGƒQÀœZÀœZÀœ`ÀœnÀœmÀœGÀœHƒK�{ƒcƒ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þY