百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

Flutter中使用ImagePicker获取图片和视频

qiyuwang 2024-10-11 18:23 20 浏览 0 评论

木辛老师来了,本节课咱们一起来看看如何在Flutter中使用ImagePicker获取图片和视频吧!

请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Flutter基础编程知识,变身快乐的编程达人吧~

刷抖音,发抖音,是不是的在自己的朋友圈PO个照片,这已经逐渐成了我们日常生活中非常“重要”的组成部分啦。之所以说非常重要,是因为有的时候你玩抖音或者朋友圈的时候,是一种下意识的动作,可以算作你肢体肌肉记忆中的一部分啦。

既然这样了,也就不要刻意去强迫自己改变这种生活习惯,慢慢的去接受,慢慢的从中寻找到属于自己的成果就好了。

你有没有想过,平时记录自己自拍,记录家庭活动的这些事情,如果通过你自己创建的一个应用程序去实现,是不是会更有成就感呢?

这样的一个程序可能会涉及到从相机中捕获图像,从图库中选择已经存在的照片或者选择或者捕获视频什么的,看着好像很有意思的样子,那么让我们通过今天的教程亲自去尝试一下吧。

在最开始的时候,需要选择一个非常趁手的插件才能制作出好用的工具,在这里我们选择的是:image_picker。

在这个教程中你会掌握如下技能:

  1. 如何从相册中获取图片
  2. 通过相机进行拍照
  3. 打开相册中的视频
  4. 使用相机进行拍摄

第一步:装他、装他、装他

安装Flutter的这些包方法都很统一,你可以打开项目目录下的pubspec.yaml文件,在dependencies中添加如下内容就可以啦:

image_picker: ^0.8.4+4
video_player: ^2.2.7

(PS:请注意,因为我们这里设计视频的播放,所以顺手把video_player扩展添加上了)

点击同步按钮。

当然了,如果你更喜欢命令行工具,也可以这么安装

flutter pub add image_picker

这一条命令好像更简单一些。

第二步:设置iOS和Android端

安装成功了吧?

如果安装成功了,那么你需要分别对iOS和Android两个平台进行设置。

iOS

要在 iOS 中使用这个包,需要 iOS 9.0 或更高版本。

从包的 0.8.1 版开始,iOS 通过PHPicker 实现在iOS 14 或更高版本上选择(多个)图像。

由于PHPicker的缘故,在 iOS 14+ 的 iOS 模拟器上无法选择 HEIC 图像。 这是一个已知的问题。 请在真实设备上进行测试,或使用非 HEIC 图像进行测试,等Apple 解决这个问题吧。

打开info.plist文件,这个文件应该在这个位置

<project root>/ios/Runner/Info.plist

添加如下条目:

  • NSPhotoLibraryUsageDescription:通过这个关键字,描述一下你在应用中使用图片库权限的原因,如果你打开的是可视化编辑器进行编辑,这个条目叫做:Privacy - Photo Library
  • NSCameraUsageDescription:还是要说明你为啥要用相机,稍微描述一下就可以了,不过不要描述的让用户看到就立马给你卸载就行啦
  • NSMicrophoneUsageDescription:对了,还有个录制视频的功能,所以要在这个条目下写清楚为啥要使用麦克风。

Android

在Android中没有需要额外设置的,惊不惊喜,意不意外(PS:如果你还有其他额外的功能,可能需要哟)

不需要在<application>里边设置android:requestLegacyExternalStorage=“true”吗?你可能会义愤填膺地质问我!

是的,暂时不需要,因为image_picker做了个小功能,它会将数据暂时保存在域存储(scoped storage)中。

所以,获取到的图片或者视频只会暂时保存在本地缓存中,只是临时存在的,所以如果想永久保存你还需要做些额外工作!

第三步:开始码代码

在使用的代码文件开头部分导入

import 'package:image_picker/image_picker.dart';

实例化ImagePicker

final ImagePicker _picker = ImagePicker();

接下来,通过以下语句可以拿到图片啦

// Pick an image
final XFile? image = await _picker.pickImage(source: ImageSource.gallery);

如果,你想通过摄像头拍摄照片的话,可以使用如下代码

// Capture a photo
final XFile? photo = await _picker.pickImage(source: ImageSource.camera);

打开相册中的视频,可以这么写

// Pick a video
final XFile? image = await _picker.pickVideo(source: ImageSource.gallery);

通过摄像头拍摄视频可以这么搞

// Capture a video
final XFile? photo = await _picker.pickVideo(source: ImageSource.camera);

那么,一次选择多张照片应该怎么办捏?

// Pick multiple images
final List<XFile>? images = await _picker.pickMultiImage();
...


其实,每个Flutter的包在使用的时候是非常简单的,做一个简单的示例程序也是so easy。

难就难在如何按照你的需求做出来,并且还要适配国内和国际上众多的手机型号。

好了,APP开发道路遥远,且行且珍惜吧。

请大家关注木辛老师的课程哟,获取更多编程知识和编程技巧。接下来,木辛老师和大家一步一步地学习Flutter知识吧。

快乐编程,快乐成长!

咱们下节课再见,88~

相关推荐

程序员都用什么电脑?适合编程笔记本电脑推荐

适合程序员的笔记本电脑首先应该满足小巧轻便这个需求,然后才是性能因素,一个标准的程序员必定能够随时随地改BUG,所以可以优先考虑苹果MacBookPro,由于其MacOS就是Linux内核,做开...

Linux(debian)内核编译(二)虚拟网卡实例

2.10.虚拟网卡TUN/TAP...

老毛子要上天 冬天竟然拿矿机当暖气

2017-12-2814:10:55作者:李鑫我们都知道矿机在实际工作当中会产生出大量的热能,近日俄罗斯就有人用Comino挖矿电脑来充当暖气的效果,这台电脑不需要特别安装,也没有多余的接口,同样...

qemu linux内核(5.10.209)开发环境搭建

版本信息宿主机:ubuntu20.04.6LTS(FocalFossa)虚拟机:ubuntu20.04.6LTS(FocalFossa)安装宿主机的步骤省略,和一般的在vmware中安...

Ubuntu 16.04 LTS现已正式支持IBM LinuxONE与z Systems

4月22号的时候,Canonical很高兴地宣布了Ubuntu16.04LTS(XenialXerus)已正式支持IBMzSystems和LinuxONE大型机的消息。该长期支持版本经历了六...

号称最强大深度学习笔电,雷蛇推出Lambda Tensorbook笔记本电脑

IT之家4月13日消息,深度学习公司Lambda与雷蛇合作,发布了新的LambdaTensorbook笔记本电脑,号称是世界上为深度学习设计的最强大的笔记本电脑,可以使用Linux...

电脑连 WiFi 全攻略!3 步搞定 + 疑难解答

电脑搜不到WiFi?输对密码却连不上?看视频卡、打游戏延迟高?别慌!不管你用Win/Mac还是Linux,这篇保姆级教程从连接步骤到故障排查全覆盖,10分钟让你告别“网络黑洞”!一、基础连...

linux 网卡bond模式

如何进行Linux网络绑定网络绑定简介在Debian10Buster(DHCP)上配置有线和无线网络绑定...

在 Ubuntu Server 上配置静态 IP 地址

Ubuntu17.10之前版本编辑/etc/network/interfaces文件重启网络服务或重启服务器来应用新的配置...

爬虫搞崩网站后,程序员自制“Zip炸弹”反击,6刀服务器成功扛住4.6万请求

...

Linux网络运维脚本实战示例:配置下发

在Linux网络运维场景中,自动化配置下发是提高效率的关键。一个示例展示如何编写一个Shell脚本,用于远程批量部署网络配置到多台服务器。本示例将使用SSH无密码登录和Ansible自动化工具来简化和...

KVM 虚拟机网络连接异常的排查方法

#KVM虚拟机网络连接异常的排查方法当KVM虚拟机出现网络连接问题时,可以按照以下系统化的方法进行排查和解决:##一、基础网络检查###1.检查虚拟机网络状态```bash#在虚拟机内部检...

技术宅教你linux开发板直连电脑ubuntu

1:我使用的是笔记本,台式机类似。原理:和开发板挂载到路由器或者交换机不一样。我们通过笔记本电脑直连,是将笔记本的物理网卡作为一个桥梁,把开发板和虚拟机ubuntu连接在一起。连接好以后可以使用NFS...

Ubuntu 25.04发行版登场:Linux 6.14内核,带来多项技术革新

IT之家4月18日消息,科技媒体linuxiac昨日(4月17日)发布博文,报道称代号为PluckyPuffin的Ubuntu25.04发行版正式上线,搭载最新Linu...

【故障解决】麒麟系统右下角网络图标取消显示叹号

原文链接:【故障解决】麒麟系统右下角网络图标取消显示叹号...

取消回复欢迎 发表评论: