日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flutter图片预览_Flutter 视频缩略图

發布時間:2023/12/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flutter图片预览_Flutter 视频缩略图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在做即時通訊前整理了一個視頻縮略圖的工具類,可供碼農直接放入項目中使用,涉及到的插件:

video_player: ^0.10.11+2

話不多說代碼如下:

import 'package:flutter/material.dart';

import 'package:spanners/cTools/vedioPalyer.dart';

import 'package:video_player/video_player.dart';

class AddVideoFirstImage extends StatefulWidget {

final String videoUrl;

const AddVideoFirstImage({Key key, this.videoUrl}) : super(key: key);

@override

_AddVideoFirstImageState createState() => _AddVideoFirstImageState();

}

class _AddVideoFirstImageState extends State {

//視頻 縮略圖

VideoPlayerController _controller;

Future _initializeVideoPlayerFuture;

@override

Widget build(BuildContext context) {

@override

void initState() {

// TODO: implement initState

setState(() {

//視頻縮略圖

_controller =

VideoPlayerController.network(widget.videoUrl); //網絡視頻,也可以是file

_controller.setLooping(true);

_initializeVideoPlayerFuture = _controller.initialize();

});

super.initState();

}

return Stack(

children: [

Padding(

padding: EdgeInsets.all(0),

child: ConstrainedBox(

constraints: BoxConstraints.expand(),

child: FutureBuilder(

//顯示縮略圖

future: _initializeVideoPlayerFuture,

builder: (context, snapshot) {

print(snapshot.connectionState);

if (snapshot.hasError) print(snapshot.error);

if (snapshot.connectionState == ConnectionState.done) {

return AspectRatio(

aspectRatio: 2 / 3,

// aspectRatio: _controller.value.aspectRatio,

child: VideoPlayer(_controller),

);

} else {

return Center(

child: CircularProgressIndicator(),

);

}

},

),

),

),

/* 播放 按鈕所在位置 大小 可根據實際項目 需要 調整 */

Padding(

padding: EdgeInsets.fromLTRB(

MediaQuery.of(context).size.width / 2 - 30 / 2 - 20,

151 / 2 - 20,

MediaQuery.of(context).size.width / 2 - 30 / 2 - 20,

151 / 2 - 20),

child: InkWell(

onTap: () {

/* 視頻上傳成功后 點擊播放視頻 */

Navigator.push(

context,

new MaterialPageRoute(

builder: (context) => new videoPalyer(

url: widget.videoUrl,

)));

},

child: Container(

decoration: BoxDecoration(

borderRadius: BorderRadius.circular(20),

),

child: Icon(

Icons.play_arrow,

color: Colors.white,

size: 40,

),

),

)),

],

);

}

}

總結

以上是生活随笔為你收集整理的flutter图片预览_Flutter 视频缩略图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。