我是新手,想创建一个播放视频的简单视频列表应用。在此期间,我创建了一个使用chewie和视频播放器的简单flutter应用程序。这是代码:
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
import 'package:chewie/chewie.dart';
import 'package:flutter/services.dart';
void main() => runApp(VideoPlayerApp());
class VideoPlayerApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]),
child:MaterialApp(
title: 'Video Player Demo',
home: VideoPlayerPage(),
)
);
}
}
class VideoPlayerPage extends StatelessWidget {
VideoPlayerPage({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
children: <Widget>[
VideoPlayerPageItem( // <- THIS IS THE CAUSE!
videoPlayerController: VideoPlayerController.network(
"https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4",
),
looping: true,
),
],
),
);
}
}
class VideoPlayerPageItem extends StatefulWidget {
final VideoPlayerController videoPlayerController;
final bool looping;
VideoPlayerPageItem({
Key key,
@required this.videoPlayerController,
this.looping,
}) : super(key: key);
@override
_VideoPlayerPageItemState createState() => _VideoPlayerPageItemState();
}
class _VideoPlayerPageItemState extends State<VideoPlayerPageItem> {
ChewieController _chewieController;
@override
void initState() {
super.initState();
_chewieController = ChewieController(
videoPlayerController: widget.videoPlayerController,
aspectRatio: 16 / 9,
autoInitialize: true,
looping: widget.looping,
errorBuilder: (context, errorMessage) {
return Center(
child: Text(
errorMessage,
style: TextStyle(color: Colors.white),
),
);
}
);
}
@override
void dispose() {
widget.videoPlayerController.dispose();
_chewieController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return AspectRatio(
aspectRatio: 16 / 9,
child: Chewie(
controller: _chewieController,
),
);
}
}
然后我在物理Android设备上运行它,但由于某种原因,我陷入了这个错误。
I / Choreographer(12733):跳过了37帧!该应用程序可能在其主线程上做过多的工作。
我再次检查了代码,发现是造成此问题的视频播放器。
我的问题是,在这种情况下如何正确使用视频播放器?