Browse Source

update readme and some params

Caijinglong 6 years ago
parent
commit
d5de88a0ac

+ 30 - 0
README-EN.md

@@ -222,6 +222,36 @@ await controller.reset(); // When this method is called, all native resources ar
 await controller.dispose(); // After this method call, the current controller is theoretically no longer available, resetting dataSource is invalid and may throw an exception.
 ```
 
+### Use self controller UI
+
+Use `IJKPlayer`'s `controllerWidgetBuilder` params can customize UI, default use `defaultBuildIjkControllerWidget` method to get widget.
+
+The returned widget will be overwritten on the `Texture`.
+
+```dart
+IJKPlayer(
+  mediaController: IjkMediaController(),
+  controllerWidgetBuilder: (mediaController){
+    return Container(); // your controller widget.
+  },
+);
+```
+
+### Use Texture widget
+
+Use `textureBuilder` params to customize `Texture` widget, use `playerBuilder` in before 0.1.8 version.
+
+Default use `buildDefaultIjkPlayer` method, params is `context,controller,videoInfo` and reture a `Widget`.
+
+```dart
+IJKPlayer(
+  mediaController: IjkMediaController(),
+  textureBuilder: (context,mediaController,videoInfo){
+    return Texture(); /// Your `Texture` widget
+  },
+);
+```
+
 ## LICENSE
 
 MIT

+ 31 - 1
README.md

@@ -243,7 +243,37 @@ Stream<bool> volumeStream = controller.playingStream;
 ```dart
 await controller.reset(); // 这个方法调用后,会释放所有原生资源,但重新设置dataSource依然可用
 
-await controller.dispose(); //这个方法调用后,当前控制器理论上不再可用,重新设置dataSource无效
+await controller.dispose(); //这个方法调用后,当前控制器理论上不再可用,重新设置dataSource无效,且可能会抛出异常
+```
+
+### 自定义控制器 UI
+
+使用`IJKPlayer`的`controllerWidgetBuilder`属性可以自定义控制器的 UI,默认使用`defaultBuildIjkControllerWidget`方法构建
+
+返回的 Widget 会被覆盖在 Texture 上
+
+```dart
+IJKPlayer(
+  mediaController: IjkMediaController(),
+  controllerWidgetBuilder: (mediaController){
+    return Container(); // 自定义
+  },
+);
+```
+
+### 自定义纹理界面
+
+使用`textureBuilder`属性自定义纹理界面,在 0.1.8 和之前的版本该属性名是`playerBuilder`
+
+默认的方法`buildDefaultIjkPlayer`接受 `context,controller,videoInfo` 参数返回 Widget
+
+```dart
+IJKPlayer(
+  mediaController: IjkMediaController(),
+  textureBuilder: (context,mediaController,videoInfo){
+    return Texture(); // 自定义纹理界面
+  },
+);
 ```
 
 ## Progress

+ 5 - 5
lib/src/ijkplayer.dart

@@ -20,17 +20,17 @@ class IjkPlayer extends StatefulWidget {
   final IjkMediaController mediaController;
 
   /// See [DefaultIJKControllerWidget]
-  final ControllerWidgetBuilder controllerWidgetBuilder;
+  final IJKControllerWidgetBuilder controllerWidgetBuilder;
 
   /// See [buildDefaultIjkPlayer]
-  final PlayerBuilder playerBuilder;
+  final IJKTextureBuilder textureBuilder;
 
   /// Main Classes of Library
   const IjkPlayer({
     Key key,
     @required this.mediaController,
     this.controllerWidgetBuilder = defaultBuildIjkControllerWidget,
-    this.playerBuilder = buildDefaultIjkPlayer,
+    this.textureBuilder = buildDefaultIjkPlayer,
   }) : super(key: key);
 
   @override
@@ -91,8 +91,8 @@ class IjkPlayerState extends State<IjkPlayer> {
   }
 
   Widget _buildTexture(int id, VideoInfo info) {
-    if (widget?.playerBuilder != null) {
-      return widget.playerBuilder.call(context, controller, info);
+    if (widget?.textureBuilder != null) {
+      return widget.textureBuilder.call(context, controller, info);
     }
 
     if (id == null) {

+ 2 - 2
lib/src/widget/controller_widget_builder.dart

@@ -10,7 +10,7 @@ import 'package:flutter_ijkplayer/src/helper/ui_helper.dart';
 import 'package:flutter_ijkplayer/src/widget/progress_bar.dart';
 
 /// Using mediaController to Construct a Controller UI
-typedef Widget ControllerWidgetBuilder(IjkMediaController controller);
+typedef Widget IJKControllerWidgetBuilder(IjkMediaController controller);
 
 /// default create IJK Controller UI
 Widget defaultBuildIjkControllerWidget(IjkMediaController controller) {
@@ -23,7 +23,7 @@ Widget defaultBuildIjkControllerWidget(IjkMediaController controller) {
 
 /// Default Controller Widget
 ///
-/// see [IjkPlayer] and [ControllerWidgetBuilder]
+/// see [IjkPlayer] and [IJKControllerWidgetBuilder]
 class DefaultIJKControllerWidget extends StatefulWidget {
   final IjkMediaController controller;
 

+ 1 - 1
lib/src/widget/ijkplayer_builder.dart

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter_ijkplayer/flutter_ijkplayer.dart';
 
 /// Player builder, Inheritance of this class allows you to implement your own player
-typedef Widget PlayerBuilder(
+typedef Widget IJKTextureBuilder(
   BuildContext context,
   IjkMediaController controller,
   VideoInfo info,