Neeko
基于 video_player 的简单视频播放器小部件。Neek 支持更多操作,例如时间线控制、切换全屏等。
注意:此插件仍在开发中。欢迎提交 Pull Requests。
安装
首先,在你的 `pubspec.yaml` 文件中将 `nekko` 添加为 依赖项。
iOS
警告:视频播放器在 iOS 模拟器上无法正常工作。开发/测试期间必须使用 iOS 设备。
在你的 Info.plist 文件中添加以下条目,该文件位于 <项目根目录>/ios/Runner/Info.plist
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
此条目允许你的应用通过 URL 访问视频文件。
Android
确保你的 Android Manifest 文件中包含以下权限,该文件位于 <项目根目录>/android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
Flutter 项目模板已添加此项,因此它可能已存在。
示例
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
// static const String beeUri = 'https://media.w3.org/2010/05/sintel/trailer.mp4';
static const String beeUri =
'http://vfx.mtime.cn/Video/2019/03/09/mp4/190309153658147087.mp4';
final VideoControllerWrapper videoControllerWrapper = VideoControllerWrapper(
DataSource.network(
'http://vfx.mtime.cn/Video/2019/03/09/mp4/190309153658147087.mp4',
displayName: "displayName"));
@override
void initState() {
super.initState();
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
}
@override
void dispose() {
SystemChrome.restoreSystemUIOverlays();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: NeekoPlayerWidget(
onSkipPrevious: () {
print("skip");
videoControllerWrapper.prepareDataSource(DataSource.network(
"http://vfx.mtime.cn/Video/2019/03/12/mp4/190312083533415853.mp4",
displayName: "This house is not for sale"));
},
videoControllerWrapper: videoControllerWrapper,
actions: <Widget>[
IconButton(
icon: Icon(
Icons.share,
color: Colors.white,
),
onPressed: () {
print("share");
})
],
),
);
}
}