diff --git a/README.md b/README.md index 78abb4fa..f61340b6 100644 --- a/README.md +++ b/README.md @@ -138,27 +138,13 @@ YoutubeValueBuilder( ); ``` -## License -``` -Copyright 2022 Sarbagya Dhaubanjar. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +## Contributors + + + + + + + + + \ No newline at end of file diff --git a/packages/youtube_player_iframe/README.md b/packages/youtube_player_iframe/README.md index a626abcd..bf18a1ea 100644 --- a/packages/youtube_player_iframe/README.md +++ b/packages/youtube_player_iframe/README.md @@ -160,169 +160,13 @@ YoutubeValueBuilder( ); ``` -## License -``` -Copyright 2022 Sarbagya Dhaubanjar. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -- ▶️ **Inline Playback**: Provides seamless inline video playback within your app. -- 🎬 **Caption Support**: Fully supports captions for enhanced accessibility. -- 🔑 **No API Key Required**: Easily integrates without the need for an API key. -- 🎛️ **Custom Controls**: Offers extensive support for custom video controls. -- 📊 **Metadata Retrieval**: Capable of retrieving detailed video metadata. -- 📡 **Live Stream Support**: Compatible with live streaming videos. -- ⏩ **Adjustable Playback Rate**: Allows users to change the playback speed. -- 🛠️ **Custom Control Builders**: Exposes builders for creating bespoke video controls. -- 🎵 **Playlist Support**: Supports both custom playlists and YouTube's native playlist feature. -- 📱 **Fullscreen Gestures**: Enables fullscreen gestures, such as swiping up or down to enter or exit fullscreen mode. - - -This package uses [webview_flutter](https://pub.dev/packages/webview_flutter) under-the-hood. +## Contributors -## Setup -See [**webview_flutter**'s doc](https://pub.dev/packages/webview_flutter) for the requirements. + + + -### Using the player -Start by creating a controller. + + -```dart -final _controller = YoutubePlayerController( - params: YoutubePlayerParams( - mute: false, - showControls: true, - showFullscreenButton: true, - ), -); - -_controller.loadVideoById(...); // Auto Play -_controller.cueVideoById(...); // Manual Play -_controller.loadPlaylist(...); // Auto Play with playlist -_controller.cuePlaylist(...); // Manual Play with playlist - -// If the requirement is just to play a single video. -final _controller = YoutubePlayerController.fromVideoId( - videoId: '', - autoPlay: false, - params: const YoutubePlayerParams(showFullscreenButton: true), -); -``` - -Then the player can be used in two ways: - -#### Using `YoutubePlayer` -This widget can be used when fullscreen support is not required. - -```dart -YoutubePlayer( - controller: _controller, - aspectRatio: 16 / 9, -); - -``` - -#### Using `YoutubePlayerScaffold` -This widget can be used when fullscreen support for the player is required. - -```dart -YoutubePlayerScaffold( - controller: _controller, - aspectRatio: 16 / 9, - builder: (context, player) { - return Column( - children: [ - player, - Text('Youtube Player'), - ], - ); - }, -) -``` - -See the [example app](example/lib/main.dart) for detailed usage. - -## Inherit the controller to descendant widgets -The package provides `YoutubePlayerControllerProvider`. - -```dart -YoutubePlayerControllerProvider( - controller: _controller, - child: Builder( - builder: (context){ - // Access the controller as: - // `YoutubePlayerControllerProvider.of(context)` - // or `controller.ytController`. - }, - ), -); -``` - -## Want to customize the player? -The package provides `YoutubeValueBuilder`, which can be used to create any custom controls. - -For example, let's create a custom play pause button. -```dart -YoutubeValueBuilder( - controller: _controller, // This can be omitted, if using `YoutubePlayerControllerProvider` - builder: (context, value) { - return IconButton( - icon: Icon( - value.playerState == PlayerState.playing - ? Icons.pause - : Icons.play_arrow, - ), - onPressed: value.isReady - ? () { - value.playerState == PlayerState.playing - ? context.ytController.pause() - : context.ytController.play(); - } - : null, - ); - }, -); -``` - -## License -``` -Copyright 2022 Sarbagya Dhaubanjar. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + \ No newline at end of file