首页 > 其他分享 >5.28

5.28

时间:2024-06-13 19:12:25浏览次数:8  
标签:index assets video context override videoPlayerController 5.28

import 'package:flutter/material.dart';
import 'package:chewie/chewie.dart';
import 'package:video_player/video_player.dart';

void main() {
runApp(MaterialApp(
home: Video1(),
));
}

class Video1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: VideoListPage(),
);
}
}

class VideoListPage extends StatelessWidget {
final List<String> videoThumbnails = [
'assets/images/video_thumbnail0.jpg',
'assets/images/video_thumbnail1.jpg',
'assets/images/video_thumbnail2.jpg',

];

final List<String> videoFiles = [
'assets/video/video0.mp4',
'assets/video/video1.mp4',
'assets/video/video2.mp4',
];

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('视频列表'),
),
body: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
itemCount: videoThumbnails.length,
itemBuilder: (context, index) {
return _buildVideoListItem(context, index);
},
),
);
}

Widget _buildVideoListItem(BuildContext context, int index) {
return GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => VideoPlayerPage(videoFile: videoFiles[index]),
),
);
},
child: Column(
children: <Widget>[
AspectRatio(

aspectRatio: 4 / 3, // 保持视频缩略图宽高比为16:9
child: Container(
width: MediaQuery.of(context).size.width / 2 - 16, // 容器宽度,适应网格列宽
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(videoThumbnails[index]),
fit: BoxFit.cover, // 强制缩放以适应容器大小
),
),
),
),
SizedBox(height: 0), // 减少上下间隔
Text('视频 $index', textAlign: TextAlign.center),
],
),
);
}
}

class VideoPlayerPage extends StatefulWidget {
final String videoFile;

VideoPlayerPage({required this.videoFile});

@override
_VideoPlayerPageState createState() => _VideoPlayerPageState();
}

class _VideoPlayerPageState extends State<VideoPlayerPage> {
late VideoPlayerController videoPlayerController;

@override
void initState() {
super.initState();
videoPlayerController = VideoPlayerController.asset(widget.videoFile)
..initialize().then((_) {
if (mounted) {
setState(() {});
}
});
}

@override
void dispose() {
videoPlayerController.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('视频播放'),
),
body: Center(
child: AspectRatio(
aspectRatio: videoPlayerController.value.aspectRatio,
child: Chewie(
controller: ChewieController(
videoPlayerController: videoPlayerController,
autoPlay: false,
),
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
if (videoPlayerController.value.isPlaying) {
videoPlayerController.pause();
} else {
videoPlayerController.play();
}
});
},
child: Icon(
videoPlayerController.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
),
);
}
}

标签:index,assets,video,context,override,videoPlayerController,5.28
From: https://www.cnblogs.com/kongxiangzeng/p/18246576

相关文章

  • 5.28
    今天开发安卓端的科技政策一点通,相比于web端有点复杂,边查资料边敲代码一直弄到十一点。部分代码packagecom.example.policy;importandroid.content.Intent;importandroid.os.Bundle;importandroid.text.Editable;importandroid.text.TextWatcher;importandroid.view......
  • 扫黑·决不放弃迅雷BT下载[MOV-5.28GB]高清完整版[HD720p/1080p]
    电影《扫黑·决不放弃》:坚定信念,抗击黑暗的战斗电影《扫黑·决不放弃》是一部扣人心弦的动作犯罪电影,由中国著名导演李安执导,讲述了一群有志青年与黑恶势力斗争的故事。影片通过紧凑的剧情和刺激的动作场面,以及深刻的社会寓意,引发观众对正义与邪恶的思考。......
  • 九龙城寨之围城下载/4K高清版迅雷BT下载[MKV/5.28GB]资源百度云
    电影《九龙城寨之围城》是由导演张艺谋执导,根据许鞍华的同名小说改编而成。电影以九龙城寨为背景,讲述了一个关于生存与希望的故事。这座庞大的城堡,仿佛是一个无法逾越的城墙,将人们困在其中,同时也折射出了社会中底层人民的真实处境。 电影以九龙城寨为舞台,深入描绘了这......
  • 5.28应急响应思路流程
    1、恶意外联,ip封禁及溯源准备工作:对恶意ip信息收集,如fofa、钟馗之眼、资产绘测等等;受害者信息收集,如:开放端口,判断入侵点;2、现场调研互联网结构,数据流向,核心交互机(是否有服务器);日志审计:windows系统日志中,wife连接日志可以确认安全事件发生时间;是否有态势感知平台,判断外联时间......
  • 5.28软工日报
    今日写了关于NaiveUI的组件<template><n-page-headersubtitle="让你的听觉更懂视觉"@back="handleBack"><n-grid:cols="5"><n-gi><n-statisticlabel="正片"value="125集"/>......
  • 5.28总结
    今天完成了科技政策一点通的部分查询功能实现(在安卓端实现)代码量:300遇到困难:sql语句的模糊查询的书写遇到了问题,不知如何去查询,一般情况下:查询所有和条件查询使用两个方法(两个sql语句)实现解决方法:分开写,分开调用dao层语句1packagecom.lian.policy.Dao;23importc......
  • 5.28每日总结
    今天计网考试,然后做建民老师的测试,科技查询政策的安卓端,将相关代码发在下面packagecom.example.kejiimportandroid.os.Bundleimportandroid.util.Logimportandroidx.fragment.app.Fragmentimportandroid.view.LayoutInflaterimportandroid.view.Viewimportandroid......
  • QCN9024 Performance|WiFi6E TriBand Card DR9074 Achieving 1.3Gbps Speed in 5.28GH
    QCN9024Performance|WiFi6ETri-BandCardDR9074AchievesBlazing1.3GbpsSpeedin5.28GHz80MHzBWThroughputTestBoththeQCN9074andQCN9024areQualcommchips,andWallyschosethisplatformforthedevelopmentoftheTri-Bandcardduetoitsexcept......
  • 5.28学习总结thread多线程理解
    多线程早在大二刚来的时候就听王建民老师提到过,但是当时觉得多线程肯定很难,而且现在也用不到,就没有接触。现在看来多线程的学习还是比较简单的。下面演示代码均为PythonfromthreadingimportThreadth=thread(target=,args=())#target指向新线程执行的目标函数,args中......
  • 5.28
    5.29号今日总结 今天下午进行了期末测试,如下是题目和代码:河北宏志大学学生成绩管理系统1、项目需求:学生管理是各大院校的管理工作中尤为重视的一项工作,它一直以来是学校管理的一项重要的衡量指标。学生管理系统的应用解决了学校日常学生管理工作中的信息量大、数据难以......