[video_player] code excerpts in README (#6296)
* update README to pull code excerpts from basic
* update version to 2.4.6
* new line
* fix dart issues
* update to match snippet
* re-remove video_player from exclusion list
* add .
* sync readme to snippet
* Roll Flutter from 663bb66bfd90 to 723609bff1f7 (29 revisions) (#6297)
* Roll Flutter from 723609bff1f7 to 9d78b2fe2a03 (6 revisions) (#6298)
Co-authored-by: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md
index d593dfc..7a47cce 100644
--- a/packages/video_player/video_player/CHANGELOG.md
+++ b/packages/video_player/video_player/CHANGELOG.md
@@ -1,5 +1,6 @@
-## NEXT
+## 2.4.7
+* Updates README via code excerpts.
* Fixes violations of new analysis option use_named_constants.
## 2.4.6
diff --git a/packages/video_player/video_player/README.md b/packages/video_player/video_player/README.md
index c870688..de10f1e 100644
--- a/packages/video_player/video_player/README.md
+++ b/packages/video_player/video_player/README.md
@@ -1,3 +1,5 @@
+<?code-excerpt path-base="excerpts/packages/video_player_example"?>
+
# Video Player plugin for Flutter
[![pub package](https://img.shields.io/pub/v/video_player.svg)](https://pub.dev/packages/video_player)
@@ -50,19 +52,23 @@
## Example
+<?code-excerpt "basic.dart (basic-example)"?>
```dart
-import 'package:video_player/video_player.dart';
import 'package:flutter/material.dart';
+import 'package:video_player/video_player.dart';
-void main() => runApp(VideoApp());
+void main() => runApp(const VideoApp());
+/// Stateful widget to fetch and then display video content.
class VideoApp extends StatefulWidget {
+ const VideoApp({Key? key}) : super(key: key);
+
@override
_VideoAppState createState() => _VideoAppState();
}
class _VideoAppState extends State<VideoApp> {
- VideoPlayerController _controller;
+ late VideoPlayerController _controller;
@override
void initState() {
diff --git a/packages/video_player/video_player/example/build.excerpt.yaml b/packages/video_player/video_player/example/build.excerpt.yaml
new file mode 100644
index 0000000..c9a9c71
--- /dev/null
+++ b/packages/video_player/video_player/example/build.excerpt.yaml
@@ -0,0 +1,20 @@
+targets:
+ $default:
+ sources:
+ include:
+ - lib/**
+ - android/app/src/main/**
+ # Some default includes that aren't really used here but will prevent
+ # false-negative warnings:
+ - $package$
+ - lib/$lib$
+ exclude:
+ - '**/.*/**'
+ - '**/build/**'
+ - 'android/app/src/main/res/**'
+ builders:
+ code_excerpter|code_excerpter:
+ enabled: true
+ generate_for:
+ - '**/*.dart'
+ - android/**/*.xml
diff --git a/packages/video_player/video_player/example/lib/basic.dart b/packages/video_player/video_player/example/lib/basic.dart
new file mode 100644
index 0000000..169f1cd
--- /dev/null
+++ b/packages/video_player/video_player/example/lib/basic.dart
@@ -0,0 +1,73 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file is used to extract code samples for the README.md file.
+// Run update-excerpts if you modify this file.
+
+// ignore_for_file: library_private_types_in_public_api, public_member_api_docs
+
+// #docregion basic-example
+import 'package:flutter/material.dart';
+import 'package:video_player/video_player.dart';
+
+void main() => runApp(const VideoApp());
+
+/// Stateful widget to fetch and then display video content.
+class VideoApp extends StatefulWidget {
+ const VideoApp({Key? key}) : super(key: key);
+
+ @override
+ _VideoAppState createState() => _VideoAppState();
+}
+
+class _VideoAppState extends State<VideoApp> {
+ late VideoPlayerController _controller;
+
+ @override
+ void initState() {
+ super.initState();
+ _controller = VideoPlayerController.network(
+ 'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4')
+ ..initialize().then((_) {
+ // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
+ setState(() {});
+ });
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return MaterialApp(
+ title: 'Video Demo',
+ home: Scaffold(
+ body: Center(
+ child: _controller.value.isInitialized
+ ? AspectRatio(
+ aspectRatio: _controller.value.aspectRatio,
+ child: VideoPlayer(_controller),
+ )
+ : Container(),
+ ),
+ floatingActionButton: FloatingActionButton(
+ onPressed: () {
+ setState(() {
+ _controller.value.isPlaying
+ ? _controller.pause()
+ : _controller.play();
+ });
+ },
+ child: Icon(
+ _controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
+ ),
+ ),
+ ),
+ );
+ }
+
+ @override
+ void dispose() {
+ super.dispose();
+ _controller.dispose();
+ }
+}
+// #enddocregion basic-example
diff --git a/packages/video_player/video_player/example/pubspec.yaml b/packages/video_player/video_player/example/pubspec.yaml
index e6b51f9..7b6aa09 100644
--- a/packages/video_player/video_player/example/pubspec.yaml
+++ b/packages/video_player/video_player/example/pubspec.yaml
@@ -18,6 +18,7 @@
path: ../
dev_dependencies:
+ build_runner: ^2.1.10
flutter_driver:
sdk: flutter
flutter_test:
diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml
index c9d5fc5..7e2df60 100644
--- a/packages/video_player/video_player/pubspec.yaml
+++ b/packages/video_player/video_player/pubspec.yaml
@@ -3,7 +3,7 @@
widgets on Android, iOS, and web.
repository: https://github.com/flutter/plugins/tree/main/packages/video_player/video_player
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
-version: 2.4.6
+version: 2.4.7
environment:
sdk: ">=2.14.0 <3.0.0"
diff --git a/script/configs/temp_exclude_excerpt.yaml b/script/configs/temp_exclude_excerpt.yaml
index 9f14bf2..c59983e 100644
--- a/script/configs/temp_exclude_excerpt.yaml
+++ b/script/configs/temp_exclude_excerpt.yaml
@@ -18,7 +18,6 @@
- plugin_platform_interface
- quick_actions/quick_actions
- shared_preferences/shared_preferences
-- video_player/video_player
- webview_flutter/webview_flutter
- webview_flutter_android
- webview_flutter_web