成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

flutter的建議,flutter 缺點(diǎn)

Flutter視頻播放器,簡潔!

注:亮度調(diào)節(jié)和音量調(diào)節(jié)gif無法體現(xiàn),功能是ok的,其次默認(rèn)Icon鎖的close和open實(shí)在難以分辨。

創(chuàng)新互聯(lián)是專業(yè)的稱多網(wǎng)站建設(shè)公司,稱多接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行稱多網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

環(huán)境:Flutter 2.8.1 channel stable ;Dart 2.15.1

需要音頻播放器的看這里: Flutter音樂播放器

重點(diǎn)說下這個(gè)工具類,因?yàn)橐曨l播放,涉及到狀態(tài)改變有很多,筆者剛開始選擇使用 InheritedWidget 來在眾多的widget之間共享數(shù)據(jù)。但是總感覺這樣有點(diǎn)繁瑣,且不很優(yōu)雅!

這里非廣告,如果是使用 GetX 就很簡單了,筆者也使用了 GetX 進(jìn)行封裝了,一瀉千里的趕腳!,但是筆者還是那句話:剛開始接觸Flutter的開發(fā)者不是很建議使用 GetX ,可以先熟悉下Flutter狀態(tài)管理的基礎(chǔ)原理再行使用。而且為了盡量簡潔,還是不引入其他的第三方了。

我們選擇對第三方插件進(jìn)行封裝的目的不外乎這幾個(gè):

于是筆者就寫了一個(gè)工具類 VideoPlayerUtils ,專門且只用來處理播放器的所有業(yè)務(wù)。包括暫停、播放、跳轉(zhuǎn)、調(diào)節(jié)音量、調(diào)節(jié)亮度、切換視頻等操作。在所有的widget中不會(huì)引用關(guān)于 video_player 或其他第三方插件的任何信息, VideoPlayerUtils 負(fù)責(zé)widget與播放器之間的所有操作交互。后續(xù)優(yōu)化迭代或更換播放器插件時(shí),只需針對這個(gè)工具類進(jìn)行修改,對所有widget不會(huì)有任何的影響,大大的解耦合了。

其中 VideoPlayerState :

提供以上的公共屬性,可以通過 VideoPlayerUtils 來獲取對應(yīng)的值,使用 get 只讀,使外界不會(huì)誤修改這些屬性,以保證數(shù)值的安全性。開發(fā)者可根據(jù)自身需要自行添加屬性。

提供以上方法來處理播放器的所有業(yè)務(wù)。同樣的開發(fā)者可根據(jù)自身需要自行添加或修改。

重點(diǎn)說下這個(gè)方法,是整個(gè)業(yè)務(wù)的核心方法,控制視頻的播放或暫停。開發(fā)者只要遇到播放或暫停是均可調(diào)用此方法,具體是播放或暫停,內(nèi)部根據(jù)傳入的 url 自行判斷,開發(fā)者不需要關(guān)心。

切換新視頻也是使用此方法,傳入的 url 與上次不一致,自動(dòng)切換新視頻。筆者可根據(jù) statusListener 來監(jiān)聽播放狀態(tài)的改變,以此處理自身邏輯。

這個(gè)也需要提下,視頻播放器在播放新視頻時(shí)會(huì)異步初始化,一般我們的操作是在 initState() 初始化,成功后再 setState() 。這里筆者遇到一個(gè)讓人蛋疼的問題:

我們看 video_player 的使用:

VideoPlayer(controller) :widget中已經(jīng)持有了controller。本來筆者封裝的目的就是為了讓widget與controller的之間解耦合。但此時(shí)的筆者。。。。

放棄不是不可能放棄的,這輩子都不會(huì)放棄的!

于是筆者取了巧,寫了一個(gè)初始化監(jiān)聽器 initializedListener ,包換2個(gè)參數(shù): bool,Widget ,初始化是否成功;其中widget為初始化成功返回需要展示的播放器UI,失敗默認(rèn)返回 const SizedBox() 。

到這里就可以簡單使用了:

沒看錯(cuò),視頻播放就是這么簡單。

如果有更多的業(yè)務(wù)功能,筆者也按照自己的需求寫了一套,同樣的開發(fā)者可根據(jù)自身需要自行添加或修改。

VideoPlayerGestures 主要是處理手勢的,比如快進(jìn)、快退等跳轉(zhuǎn)播放;左側(cè)上下滑動(dòng)調(diào)節(jié)亮度;右側(cè)上下滑動(dòng)調(diào)節(jié)音量;單擊是否開啟沉浸式播放,所有widget的隱藏與顯示;雙擊播放、暫停等。

哦,還有 PercentageWidget 也放到這個(gè)文件下了,就是這玩意:

因?yàn)轱@示的百分比與手勢相關(guān),隨著手勢移動(dòng)而更新。開發(fā)者可自行處理。

筆者處出于簡單考慮,就按照整個(gè)UI的位置命名了。瞅一眼就知道是啥玩意。

同樣的開發(fā)者可根據(jù)自身需要自行添加或修改。

就是這玩意:

同樣的開發(fā)者可根據(jù)自身需要自行添加或修改。話說這個(gè)鎖的 Icon 的open和close是真的難分辨!

就是這玩意:

同樣的開發(fā)者可根據(jù)自身需要自行添加或修改。

這玩意是自定義的,別問,問就是跟產(chǎn)品干一架落了下風(fēng)

主要就是自定義這玩意:

同樣的開發(fā)者可根據(jù)自身需要自定義。

注:這里沒有添加緩沖的進(jìn)度,開發(fā)可查看 video_player 中的源碼 VideoProgressIndicator ,按業(yè)務(wù)自行定義。

這玩意就是整合以上的widget,再考慮下全屏的安全區(qū)域,沒啥東西。開發(fā)者可自行處理!

具體的實(shí)現(xiàn)監(jiān)聽器的思路, 看這里 。

自此一個(gè)漂亮的Flutter視頻播放器就已經(jīng)結(jié)束了。如果您覺得對您有些許幫助的話,歡迎 Star !

桌面端開發(fā)都用什么語言,簡單分析下這些語言的優(yōu)劣勢對比?

目前,最優(yōu)的選擇有四個(gè):

1.如果只在win下使用,.net form是不二選擇,可謂是又快又好,企業(yè)應(yīng)用或定制開發(fā)都是相當(dāng)好的,初學(xué)者也可以入手。

2.electron,跨平臺。需要會(huì)前端,必須熟悉js、css和html。屬于前端人員大殺器,如果是初學(xué)者,需要一下子學(xué)三樣?xùn)|西,再加上electron的進(jìn)程間通信,可能會(huì)被搞懵。

3. qt5,可以使用qml(js語法)進(jìn)行UI編程,但是需要懂c艸,但是寫軟件相當(dāng)快,還可以寫安卓、ios、Linux、嵌入式中的應(yīng)用。

4.flutter,剛剛正式支持win平臺的軟件開發(fā)。谷歌出的這個(gè)東西,適合沒有基礎(chǔ)的初學(xué)者,因?yàn)槭且粋€(gè)全新的體系,全新的語言,寫ios、安卓非常高效,之后還會(huì)兼容h5。如果是初學(xué)者可以跟著走,值得嘗試。但是新東西總有一些坑。

正式項(xiàng)目跨平臺建議electron或qt,只用win平臺強(qiáng)烈建議微軟自己的net。個(gè)人技術(shù)嘗試建議flutter。

桌面端開發(fā)跨平臺的,如果你是輕量級的項(xiàng)目,那么我推薦你用electron, 目前使用Electron來開發(fā)的桌面應(yīng)用非常多,我們最熟悉的比如Atom,VScode等等。

而且在github上也能找到許多應(yīng)用使用了electron。

electron是Node,Chromium,html,css,js的結(jié)合框架,這就需要你有一定的前端基礎(chǔ)。其實(shí)只需要了解一下electron的API就行了,其他的就像你在做web是一樣的。

這種方式最大的缺點(diǎn)就是性能,還有透明窗口也有問題。所以在做需要性能方面占有很大成分的項(xiàng)目時(shí),并不推薦使用這個(gè)方式。

那么其他的,就是最近幾年使用比較多的windows directui框架,但它不是跨平臺的。

那么就引出了qt,作為c++跨平臺的界面框架,這個(gè)上手的話,我覺得對一般人是有難度的,因?yàn)槭紫刃枰鷮?shí)的c++功底,其次你要熟悉控件的制作原理,因?yàn)橛袝r(shí)候你需要定制自己的UI控件。它現(xiàn)在在嵌入式,軍工領(lǐng)域非常受歡迎。但是整個(gè)庫非常臃腫龐大,而且開發(fā)界面的效率也非常低。如果來做互聯(lián)網(wǎng)項(xiàng)目,迭代更新的速度根本就跟不上。

目前都只有大公司會(huì)采用,像maya這種生產(chǎn)力型的應(yīng)用很多是qt做的。

還有一種是直接使用Cef加js,比如網(wǎng)易云音樂,就是這么搞的,但是很多和系統(tǒng)平臺的交互接口你需要重寫,等于是需要自己造輪子。工作量大,目前沒有適合的框架給你套用,也需要扎實(shí)的c++功底。

其實(shí)pc端的應(yīng)用基本也就windows會(huì)火一些,再加一個(gè)macos,那么選擇qt應(yīng)該會(huì)很好一點(diǎn),畢竟你自己造一個(gè)跨平臺的框架,太費(fèi)時(shí)。總之,做跨平臺就意味著,不可能做到既有效率又完美的實(shí)現(xiàn)各種功能,許多都要自己摸索。

win桌面端直接上visual studio?。∪缓竽闶煜な裁凑Z言?vb.net,c#,c++都有相應(yīng)的win桌面工具。直接用就好了,非常好用

編程語言這種東西無所謂,只要能用啥都可以。 主要看你老板需要和你會(huì)用什么語言。

比如 我用AS編安卓程序,當(dāng)然用JAVA。不過我后臺最開始用ASP和ASP.NET來做,現(xiàn)在換PHP了。桌面端用QT或者VB做。 涉及單片機(jī)部分控制也用C。

現(xiàn)在做跨平臺的了 開始以QT為主了。

只要能達(dá)到目的啥都可以。

學(xué)會(huì)1-2種 換其他的也不是很難。

對初學(xué)者來建議學(xué)C起步吧。

精通一門,重新學(xué)個(gè)語言入門也就1個(gè)月的事。

PC桌面程序,如果簡單一點(diǎn)的,用pyqt5+python的開發(fā)難度和周期都比較現(xiàn)實(shí)一點(diǎn)

會(huì)C++ 用Qt5 非常不錯(cuò) 寫代碼效率很高

會(huì)js 用atom使用的那個(gè)框架

會(huì)Python用PyQt 寫代碼很快

會(huì)java用JavaFX

看語言咯

還可以用delphi,其firemonkey框架發(fā)布8年時(shí)間,支持跨平臺:win,安卓,ios,macos,linux,后續(xù)支持webassembly,界面是控件拖拽布局所見即所得,開發(fā)效率較高。編譯生成的是機(jī)器碼,編譯速度快,調(diào)試方便,其生成機(jī)器碼運(yùn)行效率較高,支持x86,arm的32位64位處理器。支持跨平臺3D界面,藍(lán)牙通訊,定位,重力,攝像等,支持多種SQL,NoSQL數(shù)據(jù)庫。單個(gè)開發(fā)工具實(shí)現(xiàn)前后端開發(fā),跨平臺開發(fā)。適合個(gè)人和小公司用一套工具實(shí)現(xiàn)大部分開發(fā)需求。

主要有以下幾種技術(shù)

### Duilib

#### 簡述

Duilib是在Windows平臺上使用最廣泛的類庫,使用C++和XML混合編程,國內(nèi)很多計(jì)算機(jī)企業(yè)都喜歡使用這個(gè)類庫,可能是由于他的技術(shù)許可比較寬泛的原因。

適合于界面比較簡單的軟件,視覺特效豐富,局限于Windows的平臺。例子:360電腦管家。

#### 優(yōu)勢

#### 劣勢

### Gtk、Qt或WxWidget:

#### 簡述

三種基本可以做到跨平臺的技術(shù),使用C/C++開發(fā),使用者廣泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各種綁定技術(shù))使用自繪技術(shù)。

結(jié)構(gòu)嚴(yán)謹(jǐn),軟件可以做的很大很復(fù)雜。例子:WPS和Maya。

#### 優(yōu)勢

#### 劣勢

### Electron:

#### 簡介

使用Web技術(shù)開發(fā)桌面軟件,基于Chromium(Chrome)引擎,使用JS編程語言,絕大多數(shù)使用者都是原來的網(wǎng)頁開發(fā)者。

絕大多數(shù)都是愛好者使用,處于“勉強(qiáng)可用”的地步。

適合大面積靜態(tài)展示型軟件使用。例子:網(wǎng)易云音樂。

#### 優(yōu)勢

#### 劣勢

### QtQuick(QML)

#### 簡述

Qt公司開發(fā)的一款基于OpenGL的圖形類庫,有顯卡加速,類似于Duilib。采用了C++與QML混合編程。QML類似于JavaScript語言。

QtQuick下一個(gè)版本在Qt 6上更加強(qiáng)大,業(yè)界期待已久。

#### 優(yōu)勢

#### 劣勢

### Atk、Swing或JavaFX

使用Java語言開發(fā)軟件,有JDK加持業(yè)界積累的眾多Java類庫支持。有不輸于VS的IDEA加持,本應(yīng)該更棒,只是現(xiàn)在已經(jīng)式微了。

絕大多數(shù)使用者都是企業(yè)開發(fā)(不追求界面美觀)、愛好者(開發(fā)順手)。

### WinForm、WPF或Xamarin:

使用C#開發(fā),WinForm和WPF局限于Windows平臺。有VisualStudio加持使用很爽。

### Flutter:

使用Dart語言,新類庫,bug可能會(huì)很多。

### SwiftUI或Cocoa:

蘋果平臺原生界面技術(shù),macOS平臺內(nèi)建支持,不是macOS專用軟件不推薦。

### Win32:

經(jīng)典Windows 平臺API,絕大多數(shù)只有一些老軟件還在使用,不是維護(hù)老軟件不推薦。

winform,不二選擇

webview2,作為一個(gè)瀏覽器控件嵌入在桌面應(yīng)用中,支持.net core和.net framework

做混合的話Uniapp和Flutter我應(yīng)該學(xué)哪個(gè)???

Uniapp目前比較成熟,而且用的是Vue語法,學(xué)習(xí)成本比較低,而且行業(yè)里面用的也比較廣泛,而Flutter的話,學(xué)習(xí)成本略高,因?yàn)橐獙W(xué)習(xí)新的語言,還有就是目前生態(tài)不是特別完備,等他再發(fā)展發(fā)展吧。黑馬程序員官網(wǎng)有成套免費(fèi)視頻哦,有什么不懂的可以直接過去學(xué)習(xí)。您的采納是對我成長的鞭策

flutter項(xiàng)目中添加web支持

Flutter 2.5.1

在項(xiàng)目目錄下,在終端運(yùn)行以下命令:

Flutter 中文文檔 - Flutter 中文資源 | 在 Web 中展示圖片

在無法修改服務(wù)器配置的情況下可以使用html渲染。此外官方文檔中建議,如果顯示的圖片較多,使用html渲染性能更好

webview只支持移動(dòng)端,其它平臺嘗試打開網(wǎng)頁

webview - web view for flutter web application - Stack Overflow

使用 package_info_plus | Flutter Package (pub.dev) 替換package_info

使用 --base-href ,可設(shè)置服務(wù)器子目錄

本文名稱:flutter的建議,flutter 缺點(diǎn)
本文鏈接:http://jinyejixie.com/article26/dsedscg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、微信公眾號、電子商務(wù)、網(wǎng)站維護(hù)建站公司、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
丁青县| 确山县| 伊春市| 大足县| 邹平县| 朝阳区| 河北区| 琼海市| 大丰市| 聂荣县| 丰城市| 阿勒泰市| 三河市| 和平县| 泸溪县| 乌拉特中旗| 上高县| 宝坻区| 积石山| 云和县| 龙川县| 永平县| 兴海县| 枞阳县| 资溪县| 莱西市| 枣阳市| 青神县| 大理市| 耒阳市| 华阴市| 嘉黎县| 古丈县| 新昌县| 乌恰县| 楚雄市| 海南省| 郁南县| 鸡东县| 若尔盖县| 资阳市|