flutter - 在颤动延迟后,如何使用 Chewie 控制器播放视频?
问题描述
class _MyAppState extends State<MyApp> {
final ImagePicker _picker = ImagePicker();
ChewieController? chewieController;
_pickvideo() async{
Future.delayed(Duration(milliseconds: 100), () {
_playVideo();
});
}
_playVideo(){
VideoPlayerController _videoPlay = VideoPlayerController.asset(
"assets/videoplayback.mp4");
chewieController = ChewieController(videoPlayerController: _videoPlay,
autoInitialize: true,
aspectRatio: 16 / 9,
errorBuilder: (context, errorMessage) {
return Center(
child: Text("Error"),
);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(children: [
RaisedButton(
onPressed: () {
setState(()async {
await _pickvideo();
});
},
child: Text("Play After button Pressed"),
),
(chewieController!=null)?Expanded(child: Chewie(controller: chewieController!)):Text("Error Message"),
]),
),
);
}
如果我使用延迟并调用 _playVideo() 函数,则视频播放器无法正常工作,但如果我没有延迟调用,它就可以正常工作。如何让视频播放器在延迟后播放。
但实际上,我需要从存储中挑选一个视频文件并使用咀嚼控制器播放它。但是图像选择器有一个 await 关键字。与延迟相同的错误正在发生。
终端出现错误
I/ExoPlayerImpl( 2722): Release 8b63f91 [ExoPlayerLib/2.14.1] [generic_x86_arm, sdk_gphone_x86_arm, Google, 30] [goog.exo.core]
D/CCodecBuffers( 2722): [c2.android.aac.decoder#470:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 0
D/CCodecBuffers( 2722): [c2.android.aac.decoder#470:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 1
D/CCodecBuffers( 2722): [c2.android.aac.decoder#470:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 2
D/CCodecBuffers( 2722): [c2.android.aac.decoder#470:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 3
I/CCodecConfig( 2722): query failed after returning 19 values (BAD_INDEX)
D/CCodecConfig( 2722): c2 config diff is c2::i32 coding.drc.compression-mode.value = 3
解决方案
尝试将延迟时间增加到 800 毫秒
Future.delayed(Duration(milliseconds: 800), () {
_playVideo();
});
}
推荐阅读
- php - twig |raw 过滤器是否进行任何编码?
- windows - 使用 vue.js 下载输入图像
- delphi - IDE 中的文件排序顺序丢失
- windows - 从资源管理器菜单获取文件路径到 Powershell 变量
- git - 使用令牌通过 SSH 克隆 GitLab,无需 SSH 密钥
- android - Firebase 自定义通知声音未播放
- sql - 根据列中的值按列动态排序
- spring - 当 pageSize 较低时,Spring Batch JDBCPagingItemReader 性能下降
- azure - Azure Web 应用程序连接到 azure sql 失败?
- laravel - Laravel 日期到德国月份名称?