自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

鴻蒙開(kāi)源第三方組件 -B站開(kāi)源彈幕庫(kù)引擎的遷移(上)

開(kāi)源
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請(qǐng)前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com

[[384935]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

前言

基于github上嗶哩嗶哩開(kāi)源項(xiàng)目(https://github.com/bilibili/DanmakuFlameMaster),進(jìn)行了鴻蒙化遷移和重構(gòu),可實(shí)現(xiàn)彈幕的隱藏、顯示、暫停、繼續(xù)、發(fā)送、定時(shí)發(fā)送彈幕等一系列的功能,代碼已經(jīng)開(kāi)源到(https://gitee.com/isrc_ohos/danmaku-flame-master_ohos ),歡迎各位下載使用并提出寶貴意見(jiàn)!

為了更加清晰的介紹彈幕庫(kù)的作用和使用方法,本文將從基礎(chǔ)知識(shí)、使用方法、 sample解析三個(gè)方面進(jìn)行講解。

一、彈幕庫(kù)的基礎(chǔ)知識(shí)

彈幕庫(kù)是一個(gè)開(kāi)源的三方庫(kù),在正式講解彈幕庫(kù)的使用之前,我們先來(lái)了解下第三方庫(kù)的含義。

第三方庫(kù)是指除本地類庫(kù)、系統(tǒng)類庫(kù)以外的類庫(kù),需要后來(lái)安裝,才能調(diào)取使用。 簡(jiǎn)單來(lái)講,相當(dāng)于其他人寫(xiě)好了代碼,實(shí)現(xiàn)了一些功能接口,我們直接調(diào)用這些接口,就可以實(shí)現(xiàn)一些我們想要的功能。舉個(gè)例子:在一個(gè)應(yīng)用中實(shí)現(xiàn)視頻緩存功能(斷網(wǎng)后可繼續(xù)播放提前緩存的內(nèi)容),如果想要自己實(shí)現(xiàn)的話,需要調(diào)用鴻蒙/安卓底層的方法,代碼量非常大。如果已經(jīng)有第三方庫(kù)可以做到這點(diǎn),并且開(kāi)源了出來(lái),那么你只需要引用他的第三方庫(kù),然后調(diào)用此庫(kù)內(nèi)公開(kāi)的一些方法接口,簡(jiǎn)簡(jiǎn)單單的幾行代碼就可以實(shí)現(xiàn)緩存功能。

了解了什么是第三方庫(kù),現(xiàn)在我們來(lái)看彈幕庫(kù)組件。 看視頻時(shí),彈幕是必不可少的互動(dòng)功能,這個(gè)功能就是調(diào)用了彈幕庫(kù)組件來(lái)實(shí)現(xiàn)的?,F(xiàn)在我們已經(jīng)實(shí)現(xiàn)了彈幕庫(kù)功能在鴻蒙平臺(tái)的構(gòu)建,接下來(lái)我們一起深入了解下鴻蒙平臺(tái)的彈幕庫(kù)吧!

二、彈幕庫(kù)的使用方法

關(guān)于彈幕庫(kù)第三方組件的使用方法,我們準(zhǔn)備了視頻教學(xué),大家可以下載使用哦~

視頻教學(xué)版鏈接:https://www.bilibili.com/video/BV1Dy4y1i7cG/

三、sample解析

導(dǎo)入彈幕庫(kù)組件后,其整個(gè)項(xiàng)目的文件結(jié)構(gòu)如下:

整個(gè)項(xiàng)目有2個(gè)module:entry和DanmakuFlameMaster。

在這里大家可以簡(jiǎn)單的理解:

==》 “DanmakuFlameMaster”就是之前提到的【第三方庫(kù)】,它里面實(shí)現(xiàn)了彈幕功能的 所有細(xì)節(jié)。

==》 entry就是一個(gè)具體的“客戶端”module,它聲明了在鴻蒙程序中的所有運(yùn)行細(xì)節(jié)。

==》 最后跑起來(lái)的程序就是entry,entry里面實(shí)現(xiàn)了所有功能,包括界面、按鈕、功能等等,只不過(guò)entry調(diào)用了第三方庫(kù)“DanmakuFlameMaster”,使用 了它的能力來(lái)實(shí)現(xiàn)了一些彈幕相關(guān)的功能。

本篇文章主要介紹如何在已經(jīng)構(gòu)建好了“DanmakuFlameMaster”這個(gè)第三方庫(kù)的基礎(chǔ)上,來(lái)進(jìn)行“entry”的開(kāi)發(fā)。

為了節(jié)省篇幅,此處我們使用一個(gè)已經(jīng)開(kāi)發(fā)完成了的sample,接下來(lái)以這個(gè)sample為例,向大家講解彈幕庫(kù)組件的應(yīng)用及效果。

將entry展開(kāi)之后,我們可以看到,真正的代碼是真的很少,主要的功能都集中在MainAbility和MainAbilitySlice文件中,加起來(lái)的代碼量也就不到1000行。

接下面我們對(duì)這兩個(gè)文件進(jìn)行逐個(gè)解析。

1、MainAbility,它是一切應(yīng)用的入口。

根據(jù)鴻蒙能力,這里是可以通過(guò)setMainRoute()方法調(diào)用很多的Slice來(lái)進(jìn)行功能的實(shí)現(xiàn),上圖標(biāo)記的代碼就是聲明了MainRoute在MainAbilitySlice之中。

2、MainAbilitySlice,這個(gè)文件比較重要。

這個(gè)文件主要包括:import文件、初始化函數(shù)、功能實(shí)現(xiàn)函數(shù)三個(gè)部分。

(1)、import 文件

此處import的文件可以分為三類:SDK文件、應(yīng)用內(nèi)文件和三方件文件。

== 》 SDK文件: import后路徑為ohos.....的。

== 》應(yīng)用內(nèi)文件:import后路徑為com.huawei......的。

== 》三方庫(kù)文件:import后路徑為master.flame.danmuku......的。

(2)、初始化函數(shù):

如圖所示,初始化函數(shù)一共包含六個(gè),我們將其分為五個(gè)部分,這五個(gè)部分與圖中函數(shù)的順序?qū)?yīng)如下:UI初始化、視頻源的設(shè)置與播放(2個(gè)函數(shù))、輸出系統(tǒng)內(nèi)存信息、設(shè)置數(shù)據(jù)源(這里的數(shù)據(jù)指的是彈幕數(shù)據(jù))以及彈幕輸出。這五個(gè)部分之中,我們主要講解其中的與彈幕庫(kù)密切相關(guān)的部分:UI初始化、彈幕數(shù)據(jù)源與彈幕輸出。

1)onStart方法實(shí)現(xiàn)了UI初始化

以上代碼構(gòu)建了彈幕庫(kù)的顯示窗口 設(shè)置了屏幕參數(shù)的讀取 。

2)彈幕數(shù)據(jù)源和最終的彈幕輸出

這兩個(gè)部分有強(qiáng)相關(guān),我們放在一起來(lái)介紹。

第一步:聲明全局變量 mParser用來(lái)承載彈幕數(shù)據(jù)。

第二步:在加載數(shù)據(jù)源處調(diào)用了我們的第三方庫(kù)的BiliDanmukuParser類,然后從我們的resources中讀取彈幕數(shù)據(jù):

可以看到在datasource其實(shí)就是讀取了這里的文件,大家可以自己點(diǎn)進(jìn)去看一下這個(gè)文件內(nèi)容,里面就是我們的“彈幕數(shù)據(jù)庫(kù)”。

第三步:將載入了彈幕的BaseDanmakuParser類對(duì)象,return給全局變量mParser(如果大家想找到這部分代碼的話,可以到findview()中去尋找)。

3、功能實(shí)現(xiàn)函數(shù)

在UI上可見(jiàn)的一些按鈕,每個(gè)按鈕都對(duì)應(yīng)一個(gè)callback函數(shù),點(diǎn)擊按鈕,執(zhí)行對(duì)應(yīng)的函數(shù)體,實(shí)現(xiàn)相關(guān)功能。

上圖所示為點(diǎn)擊不同的按鈕,出現(xiàn)不同的彈幕效果,例如:隱藏彈幕、顯示彈幕、暫停彈幕等。

項(xiàng)目貢獻(xiàn)人

熊軼翔 鄭森文 朱偉 陳美汝 呂澤

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-03-05 09:58:50

鴻蒙HarmonyOS開(kāi)源

2021-01-27 10:04:46

鴻蒙HarmonyOS動(dòng)畫(huà)

2021-03-10 15:03:40

鴻蒙HarmonyOS應(yīng)用

2021-04-29 14:32:24

鴻蒙HarmonyOS應(yīng)用

2021-08-26 16:07:46

鴻蒙HarmonyOS應(yīng)用

2021-03-24 09:30:49

鴻蒙HarmonyOS應(yīng)用

2021-08-03 10:07:41

鴻蒙HarmonyOS應(yīng)用

2021-03-01 14:00:11

鴻蒙HarmonyOS應(yīng)用

2021-04-08 14:57:52

鴻蒙HarmonyOS應(yīng)用

2021-04-20 15:06:42

鴻蒙HarmonyOS應(yīng)用

2021-07-06 18:21:31

鴻蒙HarmonyOS應(yīng)用

2021-08-05 15:06:30

鴻蒙HarmonyOS應(yīng)用

2021-08-30 17:55:58

鴻蒙HarmonyOS應(yīng)用

2021-11-02 14:54:21

鴻蒙HarmonyOS應(yīng)用

2013-01-15 13:50:22

iOS開(kāi)發(fā)開(kāi)源庫(kù)

2021-11-17 15:37:43

鴻蒙HarmonyOS應(yīng)用

2021-10-11 06:38:52

Go開(kāi)源庫(kù)語(yǔ)言

2021-04-15 17:47:38

鴻蒙HarmonyOS應(yīng)用

2021-07-20 15:20:40

鴻蒙HarmonyOS應(yīng)用

2021-08-10 15:23:08

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)