chewie

所属分类:Flutter开发
开发工具:Dart
文件大小:2083KB
下载次数:0
上传日期:2023-06-07 15:29:50
上 传 者sh-1993
说明:  Flutter的视频播放器,有一颗金色的心
(The video player for Flutter with a heart of gold)

文件列表:
.metadata (285, 2023-07-07)
CHANGELOG.md (11064, 2023-07-07)
LICENSE (1076, 2023-07-07)
analysis_options.yaml (492, 2023-07-07)
assets (0, 2023-07-07)
assets\CupertinoControls.png (1136390, 2023-07-07)
assets\MaterialControls.png (369848, 2023-07-07)
assets\MaterialDesktopControls.png (371211, 2023-07-07)
assets\Options.png (119181, 2023-07-07)
example (0, 2023-07-07)
example\.metadata (283, 2023-07-07)
example\analysis_options.yaml (222, 2023-07-07)
example\android (0, 2023-07-07)
example\android\app (0, 2023-07-07)
example\android\app\build.gradle (1745, 2023-07-07)
example\android\app\src (0, 2023-07-07)
example\android\app\src\debug (0, 2023-07-07)
example\android\app\src\debug\AndroidManifest.xml (327, 2023-07-07)
example\android\app\src\main (0, 2023-07-07)
example\android\app\src\main\AndroidManifest.xml (2178, 2023-07-07)
example\android\app\src\main\kotlin (0, 2023-07-07)
example\android\app\src\main\kotlin\com (0, 2023-07-07)
example\android\app\src\main\kotlin\com\example (0, 2023-07-07)
example\android\app\src\main\kotlin\com\example\example (0, 2023-07-07)
example\android\app\src\main\kotlin\com\example\example\MainActivity.kt (124, 2023-07-07)
example\android\app\src\main\res (0, 2023-07-07)
example\android\app\src\main\res\drawable-v21 (0, 2023-07-07)
example\android\app\src\main\res\drawable-v21\launch_background.xml (438, 2023-07-07)
example\android\app\src\main\res\drawable (0, 2023-07-07)
example\android\app\src\main\res\drawable\launch_background.xml (434, 2023-07-07)
... ...

# chewie [![Flutter Community: chewie](https://fluttercommunity.dev/_github/header/chewie)](https://github.com/fluttercommunity/community) [![Version](https://img.shields.io/pub/v/chewie.svg)](https://pub.dev/packages/chewie) ![CI](https://github.com/brianegan/chewie/workflows/CI/badge.svg) [![Generic badge](https://img.shields.io/badge/platform-android%20|%20ios%20|%20web%20-blue.svg)](https://pub.dev/packages/chewie) The video player for Flutter with a heart of gold. The [`video_player`](https://pub.dartlang.org/packages/video_player) plugin provides low-level access to video playback. Chewie uses the `video_player` under the hood and wraps it in a friendly Material or Cupertino UI! ## Preview | MaterialControls | MaterialDesktopControls | | :--------------: | :---------------------: | | ![](https://github.com/brianegan/chewie/raw/master/assets/MaterialControls.png) | ![](https://github.com/brianegan/chewie/raw/master/assets/MaterialDesktopControls.png) | ### CupertinoControls ![](https://github.com/brianegan/chewie/raw/master/assets/CupertinoControls.png) ## Installation In your `pubspec.yaml` file within your Flutter Project add `chewie` and `video_player` under dependencies: ```yaml dependencies: chewie: video_player: ``` ## Using it ```dart import 'package:chewie/chewie.dart'; final videoPlayerController = VideoPlayerController.network( 'https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4'); await videoPlayerController.initialize(); final chewieController = ChewieController( videoPlayerController: videoPlayerController, autoPlay: true, looping: true, ); final playerWidget = Chewie( controller: chewieController, ); ``` Please make sure to dispose both controller widgets after use. For example, by overriding the dispose method of the a `StatefulWidget`: ```dart @override void dispose() { videoPlayerController.dispose(); chewieController.dispose(); super.dispose(); } ``` ## Options ![](https://github.com/brianegan/chewie/raw/master/assets/Options.png) Chewie has some options which control the video. These options appear by default in a `showModalBottomSheet` (similar to YT). By default, Chewie passes `Playback speed` and `Subtitles` options as an `OptionItem`. To add additional options, just add these lines to your `ChewieController`: ```dart additionalOptions: (context) { return [ OptionItem( onTap: () => debugPrint('My option works!'), iconData: Icons.chat, title: 'My localized title', ), OptionItem( onTap: () => debugPrint('Another option that works!'), iconData: Icons.chat, title: 'Another localized title', ), ]; }, ``` ### Customizing the modal sheet If you don't like the default `showModalBottomSheet` for showing your options, you can override the View with the `optionsBuilder` method: ```dart optionsBuilder: (context, defaultOptions) async { await showDialog( context: context, builder: (ctx) { return AlertDialog( content: ListView.builder( itemCount: defaultOptions.length, itemBuilder: (_, i) => ActionChip( label: Text(defaultOptions[i].title), onPressed: () => defaultOptions[i].onTap!(), ), ), ); }, ); }, ``` Your `additionalOptions` are already included here (if you provided `additionalOptions`)! ### Translations What is an option without proper translation? To add your translation strings add: ```dart optionsTranslation: OptionsTranslation( playbackSpeedButtonText: 'Wiedergabegeschwindigkeit', subtitlesButtonText: 'Untertitel', cancelButtonText: 'Abbrechen', ), ``` ## Subtitles > Since version 1.1.0 chewie supports subtitles. Here you can see how to use them. You can provide an `List` and customize your subtitles with the `subtitleBuilder` function. Add subtitles to your `ChewieController` like the following example: ```dart ChewieController( videoPlayerController: _videoPlayerController, autoPlay: true, looping: true, subtitle: Subtitles([ Subtitle( index: 0, start: Duration.zero, end: const Duration(seconds: 10), text: 'Hello from subtitles', ), Subtitle( index: 1, start: const Duration(seconds: 10), end: const Duration(seconds: 20), text: 'Whats up? :)', ), ]), subtitleBuilder: (context, subtitle) => Container( padding: const EdgeInsets.all(10.0), child: Text( subtitle, style: const TextStyle(color: Colors.white), ), ), ); ``` The `index` attribute is for if you want to structure your subtitles in your database and provide your indexes here. `end` and `text` are the key attributes. The Duration defines which part of your video your subtitles should start and end. For example, if your video is 10 minutes long and you want to add a subtitle between: `00:00` and `00:10`'th of a second: ```dart Subtitle( index: 0, start: Duration.zero, end: const Duration(seconds: 10), text: 'Hello from subtitles', ), ``` ## Example Please run the app in the [`example/`](https://github.com/brianegan/chewie/tree/master/example) folder to start playing! ## Migrating from Chewie < 0.9.0 Instead of passing the `VideoPlayerController` and your options to the `Chewie` widget you now pass them to the `ChewieController` and pass that later to the `Chewie` widget. ```dart final playerWidget = Chewie( videoPlayerController, autoPlay: true, looping: true, ); ``` becomes ```dart final chewieController = ChewieController( videoPlayerController: videoPlayerController, autoPlay: true, looping: true, ); final playerWidget = Chewie( controller: chewieController, ); ``` ## Roadmap - [x] MaterialUI - [x] MaterialDesktopUI - [x] CupertinoUI - [x] Options with translations - [x] Subtitles - [x] CustomControls - [x] Auto-Rotate on FullScreen depending on Source Aspect-Ratio - [x] Live-Stream and UI - [x] AutoPlay - [x] Placeholder - [x] Looping - [x] Start video at - [x] Custom Progress-Bar colors - [x] Custom Overlay - [x] Allow Sleep (Wakelock) - [x] Playbackspeed Control - [x] Custom Route-Pagebuilder - [x] Custom Device-Orientation and SystemOverlay before and after fullscreen - [x] Custom ErrorBuilder - [ ] Support different resolutions of video - [ ] Re-design State-Manager with Provider - [ ] Screen-Mirroring / Casting (Google Chromecast) ## iOS warning The video_player plugin used by chewie will only work in iOS simulators if you are on flutter 1.26.0 or above. You may need to switch to the beta channel `flutter channel beta` Please refer to this [issue](https://github.com/flutter/flutter/issues/14***7). ``` 000000000000000KKKKKKKKKKKKXXXXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKK00 000000000000000KKKKKKKKKKKKKXXXXXXXXXXKKKKKKKKKKKKKKKKKKKKKKKKKKKKK00 000000000000000KKKKKKKKKKKKKXXXXXXK0xdoddoclodxOKKKKKKKKKKKKKKKKKKK00 00000000000000KKKKKKKKKKKKKKKK0xoc:;;,;,,,,''';cldxO0KKKKKKKKKKKKK000 00000000000000KKKKKKKKKKKKKKx:'',,,'.,'...;,'''',;:clk0KKKKKKKKKKK000 00000000000000KKKKKKKKKKKKd;'',,,;;;'.,..,c;;,;;;;;:;;d0KKKKKKKKKK000 00000000000000KKKKKKKKKKx,',;:ccl;,c;';,,ol::coolc:;;,,x0KKKKKKKKK000 00000000000000KKKKKKKKOl;:;:clllll;;o;;;cooclddclllllc::kKKKKKKKKK000 00000000000000KKKKKK0o;:ccclccccooo:ooc:ddoddloddolc;;;:c0KKKKKKK0000 00000000000000KKKKKOccodolccclllooddddddxdxddxkkkkxxo;'';d0KKKKKK0000 00000000000000KKKKkcoddolllllclloodxxxxdddxdddxxxddool:'.;O0KKKKK0000 00000000000000000xloollcccc:cclclodkkxxxdddxxxkkxdlllolc,,x0KKKKK0000 0000000000000000xccllccccc:;,'',;:dxkxxddddxkkkxdollcc:cc;d0KKKKKK000 000000000000000kcc:::cllol:'......odxxdoccldxxxdollllc:;;:d0KKKKK0000 00000000000000klc;;;clcc::;'...';;;:cll..',cdddolccccccc;:x0KKKKK0000 0000000000000kdl;:cclllclllc::;,;.'.''o;,,'.;ccoooollllc:;x0KKKKK0000 000000000000kol;:;::coolcc:::,.....,..cd,....':lolclolllc;x0KKKK00000 00000000000Odl;:'cllol;''',;;;;::''.',:doc;,',::looc:lcol:x0K00000000 0000000000Oxl:c,:lolc,..',:clllollodoc;cllolccloolllcclollO0K00000000 0000000000xllc,:lool:'.,...o.;llxdo:loc;;ccodlolodldllolld00K0K000000 000000000Ooc::coooc,,.',;:lx,,...':;o;l;':o:oolccocdoldloO0000KK00000 00000000kol:clllc;;,.;::;:clllllolxc;.:c':ocldlccl;clldox000000000000 000000Odll:cccc;:;,';cllooodoollcloll;c:.:d:ooo;cl;oloddkO00000000000 0000OOddOdll;c,;;,,;;:cldodddoxdoodlcc:.,ox:o:lllocdlodx00O0000000000 000Oxdl:::ll,:,:;,';c,:oloddolkxddxolc.'coccocolcccoooc;oxO00KOOOO000 dc;,'...';c,,:c:::'c:';cldoo;:odolxoc:.,o:oldlxol;lddl,.,lkO0KdlcckKO '.......,:''';cll:cc,,;:l:c,,;:oc;cdc,.;::dldoxd:ldol;,'..,:lo,,,,kOk .......';'.',:clcll,,;:l:;'..''c:,;cl'.';dxoooxlddl;',''..,,;'...,ool .......,,.'';;:cld;.;,do:..;:,':c',:c''';xxdldocol'..';,.......',;;,; .......'..'',,coxc'';:do'.clc:lco',o;',;cOxdol:cc:.....'..oxd;','.'.. '.......''..,:cxl;';;cx:''cll:clc'cl',:l:ko:c..;c:..';...,KNNl;:;ll:' .......''...;,ooc,,,:od'.':cccdd,,l''cl:co;;,..;;'..','..;d0O,;;:XXXK ............'cll;',,lo'.'.::codl,c..:c;doc.,:.',....'...'......'l0XKk '............c;;,':lc.'',.;ccol;:,.:c.:o,;'.;'......,...',,.'...'.,;; .............',;;,cc..;,'';:lc':;..c'.c:;.,......,'..'...'',:,,;;,... ..............',,;:'.';,',:c;.;;..';..,;,.........''..'...'kko.,,.... ...............;,:'..;''';:,..;''.''..''............'...'.lK0c';;c;'. ...............,,'...,.',;''...''....,......'............'dOx',;:dd,' ..............',.....'.,;..'..',..........'..............';:;',,ldo.' .............'''.'.....,'..',','..'...''..'............'.......,dx'.' .......................,...';,'..'.....,.'.............''.'......'..' ...........'......'...',..'';,'..'.....................',';,..'....'. ```

近期下载者

相关文件


收藏者