成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開源
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com

[[384935]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

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

為了更加清晰的介紹彈幕庫的作用和使用方法,本文將從基礎知識、使用方法、 sample解析三個方面進行講解。

一、彈幕庫的基礎知識

彈幕庫是一個開源的三方庫,在正式講解彈幕庫的使用之前,我們先來了解下第三方庫的含義。

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

了解了什么是第三方庫,現在我們來看彈幕庫組件。 看視頻時,彈幕是必不可少的互動功能,這個功能就是調用了彈幕庫組件來實現的。現在我們已經實現了彈幕庫功能在鴻蒙平臺的構建,接下來我們一起深入了解下鴻蒙平臺的彈幕庫吧!

二、彈幕庫的使用方法

關于彈幕庫第三方組件的使用方法,我們準備了視頻教學,大家可以下載使用哦~

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

三、sample解析

導入彈幕庫組件后,其整個項目的文件結構如下:

整個項目有2個module:entry和DanmakuFlameMaster。

在這里大家可以簡單的理解:

==》 “DanmakuFlameMaster”就是之前提到的【第三方庫】,它里面實現了彈幕功能的 所有細節。

==》 entry就是一個具體的“客戶端”module,它聲明了在鴻蒙程序中的所有運行細節。

==》 最后跑起來的程序就是entry,entry里面實現了所有功能,包括界面、按鈕、功能等等,只不過entry調用了第三方庫“DanmakuFlameMaster”,使用 了它的能力來實現了一些彈幕相關的功能。

本篇文章主要介紹如何在已經構建好了“DanmakuFlameMaster”這個第三方庫的基礎上,來進行“entry”的開發。

為了節省篇幅,此處我們使用一個已經開發完成了的sample,接下來以這個sample為例,向大家講解彈幕庫組件的應用及效果。

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

接下面我們對這兩個文件進行逐個解析。

1、MainAbility,它是一切應用的入口。

根據鴻蒙能力,這里是可以通過setMainRoute()方法調用很多的Slice來進行功能的實現,上圖標記的代碼就是聲明了MainRoute在MainAbilitySlice之中。

2、MainAbilitySlice,這個文件比較重要。

這個文件主要包括:import文件、初始化函數、功能實現函數三個部分。

(1)、import 文件

此處import的文件可以分為三類:SDK文件、應用內文件和三方件文件。

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

== 》應用內文件:import后路徑為com.huawei......的。

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

(2)、初始化函數:

如圖所示,初始化函數一共包含六個,我們將其分為五個部分,這五個部分與圖中函數的順序對應如下:UI初始化、視頻源的設置與播放(2個函數)、輸出系統內存信息、設置數據源(這里的數據指的是彈幕數據)以及彈幕輸出。這五個部分之中,我們主要講解其中的與彈幕庫密切相關的部分:UI初始化、彈幕數據源與彈幕輸出。

1)onStart方法實現了UI初始化

以上代碼構建了彈幕庫的顯示窗口 設置了屏幕參數的讀取 。

2)彈幕數據源和最終的彈幕輸出

這兩個部分有強相關,我們放在一起來介紹。

第一步:聲明全局變量 mParser用來承載彈幕數據。

第二步:在加載數據源處調用了我們的第三方庫的BiliDanmukuParser類,然后從我們的resources中讀取彈幕數據:

可以看到在datasource其實就是讀取了這里的文件,大家可以自己點進去看一下這個文件內容,里面就是我們的“彈幕數據庫”。

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

3、功能實現函數

在UI上可見的一些按鈕,每個按鈕都對應一個callback函數,點擊按鈕,執行對應的函數體,實現相關功能。

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

項目貢獻人

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

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-03-05 09:58:50

鴻蒙HarmonyOS開源

2021-01-27 10:04:46

鴻蒙HarmonyOS動畫

2021-04-29 14:32:24

鴻蒙HarmonyOS應用

2021-03-10 15:03:40

鴻蒙HarmonyOS應用

2021-03-24 09:30:49

鴻蒙HarmonyOS應用

2021-08-03 10:07:41

鴻蒙HarmonyOS應用

2021-03-01 14:00:11

鴻蒙HarmonyOS應用

2021-08-26 16:07:46

鴻蒙HarmonyOS應用

2021-07-06 18:21:31

鴻蒙HarmonyOS應用

2021-04-08 14:57:52

鴻蒙HarmonyOS應用

2021-04-20 15:06:42

鴻蒙HarmonyOS應用

2021-08-05 15:06:30

鴻蒙HarmonyOS應用

2021-08-30 17:55:58

鴻蒙HarmonyOS應用

2021-11-02 14:54:21

鴻蒙HarmonyOS應用

2013-01-15 13:50:22

iOS開發開源庫

2021-10-11 06:38:52

Go開源庫語言

2021-11-17 15:37:43

鴻蒙HarmonyOS應用

2021-07-20 15:20:40

鴻蒙HarmonyOS應用

2021-04-15 17:47:38

鴻蒙HarmonyOS應用

2021-08-10 15:23:08

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91视频.| 国产一二区视频 | 国产黄色在线观看 | 精品亚洲一区二区三区 | 免费观看色| 中文精品视频 | 欧美色性 | 狠狠亚洲| 毛片视频网站 | 国产精品电影网 | 免费小视频在线观看 | 国产欧美视频一区 | 国产精品99久久久久久动医院 | 精品视频一区二区三区在线观看 | 亚洲精品天堂 | 日日综合 | 国产一区中文字幕 | av在线影院 | 黄色一级大片在线免费看产 | 91网在线播放 | 日韩精品久久久久久 | 免费黄色在线观看 | www.99热.com | 亚洲精品久久国产高清情趣图文 | 午夜精品在线观看 | 日本黄色不卡视频 | 性色网站 | 国产精品亚洲第一区在线暖暖韩国 | 欧美激情a∨在线视频播放 成人免费共享视频 | 国产亚洲高清视频 | 亚洲欧美日韩精品久久亚洲区 | 国产精品九九九 | 久久天天 | 91精品久久久久久久久久入口 | 国产精品久久网 | 欧美精品综合 | 一级黄色片网址 | 亚洲视频中文字幕 | 精品国产一区二区三区久久影院 | 中文字幕乱码视频32 | 不卡一二区 |