Flutter - 原生交互 - 相機Camera - 曝光,縮放,錄制視頻

曝光

Flutter上CupertinoSlider組件的樣式是iOS上的Slider,使用該組件控制曝光量,
Camera插件提供的API是CameraController

Future<double> setExposureOffset(double offset) async {
...
}

最后調用iOS端的系統方法控制曝光值

- (void)setExposureTargetBias:(float)bias completionHandler:(nullable void (^)(CMTime syncTime))handler API_AVAILABLE(ios(8.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos);
class TakePictureScreenState extends State<TakePictureScreen> {/// 設置默認值double currentExposure = 0.0;/// 是否顯示曝光Slider組件bool _showedExposure = false;.../// 使用CupertinoSliderWidget showExposure() {if (_showedExposure) {return SizedBox(height: 44,width: MediaQuery.of(context).size.width,child: CupertinoSlider(/// 滑動Slider時觸發的事件onChanged: (value) {setState(() {/// 調整相機的曝光值_controller.setExposureOffset(value);currentExposure = value;});},min: -3, /// 設置作用范圍max: 3,value: currentExposure, /// 當前Slider顯示的值),);}return SizedBox.shrink();}
}
202506131634.gif

兩指手勢縮放

系統的相機可以雙指進行縮放操作,在Flutter中可以在GestureDetector來實現

/// 最小縮放比例
double _minAvailableZoom = 1.0;
/// 最大縮放比例
double _maxAvailableZoom = 1.0;
/// 記錄當前的縮放比例
double _currentScale = 1.0;
/// 當前的基礎值
double _baseScale = 1.0;Listener(onPointerDown: (_) => _pointers++,onPointerUp: (_) => _pointers--, // 用來判斷是否雙指child: CameraPreview(_controller,// Creates a widget that defers its building until layout.// 布局完成再創建child: LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {return GestureDetector(// Opaque targets can be hit by hit tests, causing them to both receive events within their bounds and prevent targets visually behind them from also receiving events.// 相機Widget能收到手勢behavior: HitTestBehavior.opaque, // 設置開始縮放事件onScaleStart: _handleScaleStart,// 設置縮放值變化事件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85523.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python中布爾值在函數中的巧妙運用

在 Python 中&#xff0c;布爾值&#xff08;True 和 False&#xff09;不僅可以用于簡單的條件判斷&#xff0c;還可以在函數中發揮強大的作用。通過合理使用布爾值&#xff0c;你可以使函數更加靈活、高效且易于理解。今天&#xff0c;就讓我們一起深入探討如何在函數中巧妙運…

解決sql查詢中in查詢項過多時很慢的問題

最近遇到查詢一張大數據量表時&#xff0c;需要對一個字段做in查詢&#xff0c;in中的元素數量可能達到幾千個&#xff0c;即使對這個字段加上索引&#xff0c;速度也慢到無法接受 示例表結構如下&#xff1a; 表中有幾十萬的數據&#xff0c;且example_id和data_id字段加了聯…

Spring---Spring MVC 執行流程

SpringMVC執行流程分為兩個&#xff1a;前后端分離與視圖階段&#xff08;不分離&#xff09; 視圖階段&#xff08;JSP/Thymeleaf/Freemarker&#xff09; SpringMVC 前后端分離階段 SpringMVC中重要組建有哪些&#xff1f; 前端控制器&#xff08;DispatcherServlet&#x…

Llama 4模型卡片及提示詞模板

Llama 4模型卡片及提示詞模板 Llama 4 模型卡及提示格式介紹 Llama 4 模型概述 Llama 4 是一系列預訓練和指令微調的混合專家(Mixture-of-Experts, MoE)大語言模型,包含兩種規模:Llama 4 Scout和Llama 4 Maverick。該模型針對多模態理解、多語言任務、編碼、工具調用及智…

使用Advanced Installer軟件將winform程序打包成exe安裝文件

使用Advanced Installer軟件將winform程序打包成exe安裝文件_c#程序打包軟件-CSDN博客 軟件的下載連接 https://download.csdn.net/download/qq_20222919/87780646

NDS 中文游戲全集下載 任天堂NDS簡介NDS支持GBA游戲

這是一份關于任天堂NDS游戲及其平臺的簡介&#xff1a; 游戲全集打包下載 https://pan.quark.cn/s/8805da9a09c4 NDS 是什么&#xff1f; 全稱&#xff1a; Nintendo DS (NDS)類型&#xff1a; 由任天堂開發和發行的掌上游戲機。世代&#xff1a; 第七世代游戲機 (與PSP、Wii…

Kamailio rtpengine_subscribe_request

master 版本的 rtpengine 新增了函數 rtpengine_subscribe_request 應該是 siprec 增加的 改天做下測試 參考鏈接&#xff1a; https://lists.kamailio.org/mailman3/hyperkitty/list/sr-userslists.kamailio.org/thread/Q7YJDVBHZX4BIWG23VRVRYW7N5SAAUOR/ https://kamai…

Java八股文——計算機網絡「網絡模型篇」

什么是OSI七層模型&#xff1f; 面試官您好&#xff0c;OSI&#xff08;Open Systems Interconnection&#xff09;七層模型&#xff0c;是由國際標準化組織&#xff08;ISO&#xff09;提出的一個網絡互聯的開放式參考模型。 它是一個理論上的、概念性的框架&#xff0c;其核…

國產服務器【銀河麒麟v10】【CPU鯤鵬920】部署Nacos

目錄 準備工作開始安裝1. 下載nacos2. 啟動3. 檢查 結束 準備工作 環境要求&#xff1a;Linux虛擬機nacos2.3.2 安裝包 開始安裝 1. 下載nacos 方式1 wget https://github.com/alibaba/nacos/releases/download/2.3.2/nacos-server-2.3.2.tar.gz方式2 去官網自行下載所需版…

一款強大的音視頻處理工具--FFmpeg-2--常用音頻處理示例

1、查看音頻文件詳細信息 opus&#xff0c;wav&#xff0c;pcm等音頻格式都適用。 ffprobe -i 1.opus說明&#xff1a; Input 0, ogg, from ‘1.opus’: Input 0&#xff1a;表示這是第一個輸入文件。ogg&#xff1a;表示該文件封裝在Ogg容器格式中&#xff08;Opus通常封裝…

在 ArcPy 腳本中進行錯誤處理和調試

查看錯誤信息 當捕獲到錯誤后&#xff0c;查看詳細的錯誤信息對于定位問題和解決問題至關重要。 &#xff08;一&#xff09;打印錯誤消息 在 except 塊中&#xff0c;可以直接打印錯誤對象來獲取錯誤消息。例如&#xff1a; try:arcpy.CalculateField_management("in…

C++11標準(4)——并發庫(多線程)

歡迎來到博主的專欄:c雜談 博主ID&#xff1a;代碼小豪 文章目錄 thread的相關函數thisthread c11新增了與并發相關的庫&#xff0c;包含線程、以及互斥、同步等與線程安全相關的庫&#xff0c;與linux中所使用POSIX庫不同&#xff0c;并發庫是將其進行了封裝&#xff0c;不再是…

優化TCP/IP協議棧與網絡層

優化TCP/IP協議棧與網絡層 在高性能架構中,網絡性能往往成為系統吞吐量與響應速度的關鍵因素之一。而TCP/IP協議棧作為現代互聯網通信的核心,其默認配置在高并發場景下常常無法滿足大規模分布式系統的性能需求。因此,架構師在構建系統時,有必要對TCP/IP協議棧及其所在的網…

Nginx常見功能

Nginx 是一個高性能的 HTTP 和反向代理服務器&#xff0c;除了基本的 Web 服務功能外&#xff0c;它還支持許多高級功能。以下是 Nginx 常用的一些功能及其設置方法&#xff1a; 1. 反向代理 反向代理是 Nginx 最常用的功能之一&#xff0c;用于將客戶端請求轉發給后端服務器&a…

UniSAL:用于組織病理學圖像分類的統一半監督主動學習方法|文獻速遞-深度學習醫療AI最新文獻

Title 題目 UniSAL: Unified Semi-supervised Active Learning for histopathologicalimage classification UniSAL&#xff1a;用于組織病理學圖像分類的統一半監督主動學習方法 01 文獻速遞介紹 組織病理學圖像在癌癥篩查、診斷及治療決策中起著關鍵作用&#xff0c;有助…

智慧園區建設資料合集(Wordppt原件)

化工園區安全風險智能化管控平臺.docx 數字孿生賦能的智慧園區物聯網云平臺建設方案.pptx 園區智慧安防解決方案.docx 新型智慧園區規劃設計方案.pptx 新型智慧園區建設方案.docx 園區大數據治理解決方案.pptx 智慧產業園區綜合解決方案.docx 智慧工業園區大數據云平臺解決方案…

好玩的鏡像匯總

一些鏡像倉庫匯總 https://github.com/code-lives/Nas-Docker https://github.com/TWO-ICE/Awesome-NAS-Docker image-matting是一款集成了AI大模型的&#xff0c;支持容器化部署的短平快摳圖工具 https://mp.weixin.qq.com/s/A1VKAYaDdbCs2o1L4ZYkSw Moodist是一個有助于專注…

langchain 開發實戰

我的開發環境是 windows python3.8 langchain版本&#xff1a; # langchain 0.2.17 # langchain-community 0.2.19 # langchain-core 0.2.43 # langchain-openai 0.1.25 # langchain-text-…

粉色 PCB:當電路板染上溫柔的科技浪漫

在電子產品的世界里&#xff0c;印制電路板&#xff08;PCB&#xff09;是其核心的 “骨架”&#xff0c;支撐并連接著各種電子元件&#xff0c;讓電子產品得以實現復雜的功能。以往&#xff0c;PCB 常見的顏色是綠色&#xff0c;然而&#xff0c;獵板打破常規&#xff0c;推出…

Navicat 技術指引 | TiDB 數據查看器

目前&#xff0c;Navicat 兩款工具支持對 TiDB 數據庫的管理開發功能&#xff1a;一款是旗艦款 Navicat Premium&#xff0c;另一款是其輕量化功能的 Navicat Premium Lite&#xff08;官方輕量級免費版&#xff09;。Navicat 自版本 17.1 開始支持 TiDB 7。它支持的系統有 Win…