注:亮度調(diào)節(jié)和音量調(diào)節(jié)gif無(wú)法體現(xiàn),功能是ok的,其次默認(rèn)Icon鎖的close和open實(shí)在難以分辨。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),坡頭企業(yè)網(wǎng)站建設(shè),坡頭品牌網(wǎng)站建設(shè),網(wǎng)站定制,坡頭網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,坡頭網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
環(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 !
搖滾的,五月天的不錯(cuò) 先說(shuō)女生唱的動(dòng)感較強(qiáng)的。彈跳,跳繩時(shí)候都可以聽(tīng)的~ 蔡依林《說(shuō)愛(ài)你》蔡依林《睜一只眼閉一只眼》Jolin的好多歌都很動(dòng)感,大家任意選~董燕妮《龍族》這首上過(guò)單曲榜哦~金莎《大小姐》金莎《停電》金莎就是減肥成功很好的一個(gè)例子?。?!大家可以效仿!梁靜茹《小手拉大手》梁靜茹《love is everything》靜茹多都是傷心情歌...這兩首還蠻快樂(lè)~孫燕姿《綠光》當(dāng)初那個(gè)紅阿....張韶涵《靜不下來(lái)》那就動(dòng)起來(lái)!?。?! 1、Vertigo,U2《How To Dismantle An Atomic Bomb》
2、Your Song,LOVE PSYCHEDELICO《THE GREATEST HITS》
3、ラブスト-リ-は突然に,小田和正《東京愛(ài)情故事》
4、Flutter,Bonobo《The L Word Enhanced Soundtrack》
5、Kiss The World,Catlow《The L Word Season 3 Soundtrack CD1》
6、Natural's Not in It,Gang of Four《Entertainment! [EMI UK Expanded]》
7、Suddenly I See,KT Tunstall《Eye To The Telescope》
8、Faint ,Linkin Park《Meteora Rock》
10、Transformation,Pam Grier + Nona Hendryx + Betty《The L Word Season 3 Soundtrack CD1》
11、Boys Wanna Be Her,Peaches《The.L.Word.Season4.Soundtrack》
12、Money,Pink Floyd《100 Greatest Rock Guitar Solos》
13、Rock DJ,Robbin
14、Come On Over,Christina Aguilera
15、仆はMusic,CHAGEASKA《DOUBLE 》
16、Ciega, Sordomuda,Shakira
17、Made Jamie,Scott《Step Up》
而且都還蠻好聽(tīng)的。以偶有限的欣賞水平來(lái)說(shuō)
大家也把自己的推薦上來(lái)啊~科學(xué)家推薦
跑步運(yùn)動(dòng)音樂(lè):《明朗先生》(Mr.Brightside)、《再見(jiàn),不聯(lián)絡(luò)》(SinceYouveBeenGone)、《快樂(lè)的一天》(LovelyDay)、《螞蟻在行軍》(AntsMarching)。
啞鈴運(yùn)動(dòng)音樂(lè):《沖擊理論》(Col-lisionCourse)、《愿望》(De-sire)、《討厭說(shuō)我那樣告訴過(guò)你》(HatetoSayIToldYouSo)。
網(wǎng)友推薦
《寂靜山林》、《仙境》、《YEAH》、《walkinthesun》
名人推薦
瞿穎:《Iwillalwaysloveyou》WhitneyHuston;《Hero》MariaCarrie
杜威:《我是一只魚(yú)》、《傷心太平洋》任賢齊
運(yùn)動(dòng)冠軍的POWERSONG:
阿姆斯特朗(7屆環(huán)法自行車(chē)賽冠軍):由chlilipeppers主唱的“Danicalifornia”。
達(dá)文波特(3屆法網(wǎng)大滿(mǎn)貫得主):《Ma鄄chinehead》主唱是Bush,“有一次,這首歌令我收到超速罰單,可想而知它的力量吧?!?/p>
Tips:
如果你不是在跑步機(jī)或者安靜的小區(qū)里跑步,也不是在固定的運(yùn)動(dòng)場(chǎng)長(zhǎng)跑,就像阿甘那樣選擇在在道路上長(zhǎng)跑,不要聽(tīng)音樂(lè)。因?yàn)檫@牽涉到安全問(wèn)題。
另外,如果你的體力不是很強(qiáng),在長(zhǎng)跑時(shí)需要調(diào)勻呼吸,突破臨界點(diǎn),這個(gè)時(shí)候更要集中注意力,最好不要有音樂(lè)來(lái)干擾
親說(shuō)的應(yīng)該是這首歌吧 歌名叫 《飛吧》
歌手:T.G.4 專(zhuān)輯:飛吧
RAP:關(guān)于在那天YOU SAY你叫我心破碎 盡管你在我心中一直是No.1 一個(gè)人超級(jí)敗壞怎么當(dāng)ONE 我只是稍微酷一些 別仰慕
關(guān)于她 你說(shuō)的所有的話(huà) 是我愚蠢是我笨 都已不重要穿上我昨天買(mǎi)的藍(lán)外套 哇!(果真是超級(jí)美麗) 什么KA KA YI丟掉吧踏踏米 一個(gè)完 全出軌的理由就在那一刻天花亂墜誓言滿(mǎn)飛笑容也沉醉 (把什么當(dāng)秘密什么當(dāng)借口) HEY BOY你的心會(huì)不會(huì)累告訴我你的心要怎么去分配 轉(zhuǎn)來(lái)轉(zhuǎn)去是個(gè)誤會(huì)而不會(huì)是親切 別站在那里假裝魅力雪氣氛不太對(duì)
SONG:跟著蝴蝶飛 會(huì)有多美 快伸出你雙臂 和我們上起揮
跟著蝴蝶飛 會(huì)有多美 I SAY陽(yáng)光明媚 YOU SAY T.G.4 HEY COME ON
RAP:一天我正準(zhǔn)備出發(fā) 太陽(yáng)也好大照的我的頭真好痛 噢媽媽咪呀他正朝我這里揮手 OH MY GOD ONE TWO THREE數(shù)完三聲趕快回家 他既不帥 氣又沒(méi)品位一臉無(wú)辜回想起來(lái)傷了誰(shuí)好像無(wú)所謂一想到他淚流滿(mǎn)面 我傻傻到終點(diǎn) 噢唱歌吧EVERYBODY
SONY:跟著蝴蝶飛 會(huì)有多美 Da La La La La La Da La La La La La
跟著蝴蝶飛 會(huì)有多美 Da La La La La La Da La La La La La
跟著蝴蝶飛 心也沉醉 Da La La La La La Da La La La La La
跟著蝴蝶飛 背靠著背 Da La La La La La Da La La La La La
懷疑總是不可靠 愛(ài)的諷刺太可笑那劇情演繹的不真實(shí) 我心如刀絞
用心碎去拼情調(diào) 只好默默祈禱愛(ài)若不能給我請(qǐng)你走開(kāi) 我也不想要
SONG:跟著蝴蝶飛 會(huì)有多美 快伸出你雙臂 和我們上起揮
跟著蝴蝶飛 會(huì)有多美 I SAY陽(yáng)光明媚 YOU SAY T.G.4 HEY COME ON
SONY:跟著蝴蝶飛 會(huì)有多美 Da La La La La La Da La La La La La
跟著蝴蝶飛 會(huì)有多美 Da La La La La La Da La La La La La