欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

Flutter視頻播放器,簡(jiǎn)潔!

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

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

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

需要音頻播放器的看這里: Flutter音樂(lè)播放器

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

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

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

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

其中 VideoPlayerState :

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

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

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

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

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

我們看 video_player 的使用:

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

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

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

到這里就可以簡(jiǎn)單使用了:

沒(méi)看錯(cuò),視頻播放就是這么簡(jiǎn)單。

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

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

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

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

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

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

就是這玩意:

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

就是這玩意:

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

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

主要就是自定義這玩意:

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

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

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

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

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

桌面端開(kāi)發(fā)都用什么語(yǔ)言,簡(jiǎn)單分析下這些語(yǔ)言的優(yōu)劣勢(shì)對(duì)比?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

win桌面端直接上visual studio啊!然后你熟悉什么語(yǔ)言?vb.net,c#,c++都有相應(yīng)的win桌面工具。直接用就好了,非常好用

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

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

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

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

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

對(duì)初學(xué)者來(lái)建議學(xué)C起步吧。

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

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

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

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

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

會(huì)java用JavaFX

看語(yǔ)言咯

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

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

### Duilib

#### 簡(jiǎn)述

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

適合于界面比較簡(jiǎn)單的軟件,視覺(jué)特效豐富,局限于Windows的平臺(tái)。例子:360電腦管家。

#### 優(yōu)勢(shì)

#### 劣勢(shì)

### Gtk、Qt或WxWidget:

#### 簡(jiǎn)述

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

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

#### 優(yōu)勢(shì)

#### 劣勢(shì)

### Electron:

#### 簡(jiǎn)介

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

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

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

#### 優(yōu)勢(shì)

#### 劣勢(shì)

### QtQuick(QML)

#### 簡(jiǎn)述

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

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

#### 優(yōu)勢(shì)

#### 劣勢(shì)

### Atk、Swing或JavaFX

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

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

### WinForm、WPF或Xamarin:

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

### Flutter:

使用Dart語(yǔ)言,新類(lèi)庫(kù),bug可能會(huì)很多。

### SwiftUI或Cocoa:

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

### Win32:

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

winform,不二選擇

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

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

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

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

Flutter 2.5.1

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

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

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

webview只支持移動(dòng)端,其它平臺(tái)嘗試打開(kāi)網(wǎng)頁(yè)

webview - web view for flutter web application - Stack Overflow

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

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

本文名稱(chēng):flutter的建議,flutter 缺點(diǎn)
本文鏈接:http://chinadenli.net/article26/dsedscg.html

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

廣告

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

成都定制網(wǎng)站建設(shè)