成人免费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-08-26 16:07:46

鴻蒙HarmonyOS應用

2021-03-24 09:30:49

鴻蒙HarmonyOS應用

2021-03-01 14:00:11

鴻蒙HarmonyOS應用

2021-04-29 14:32:24

鴻蒙HarmonyOS應用

2021-03-10 15:03:40

鴻蒙HarmonyOS應用

2021-08-03 10:07:41

鴻蒙HarmonyOS應用

2021-04-20 15:06:42

鴻蒙HarmonyOS應用

2021-07-06 18:21:31

鴻蒙HarmonyOS應用

2021-04-08 14:57:52

鴻蒙HarmonyOS應用

2021-08-30 17:55:58

鴻蒙HarmonyOS應用

2021-08-05 15:06:30

鴻蒙HarmonyOS應用

2021-11-02 14:54:21

鴻蒙HarmonyOS應用

2013-01-15 13:50:22

iOS開發開源庫

2021-10-11 06:38:52

Go開源庫語言

2021-07-20 15:20:40

鴻蒙HarmonyOS應用

2021-04-15 17:47:38

鴻蒙HarmonyOS應用

2021-06-29 09:28:16

鴻蒙HarmonyOS應用

2021-11-17 15:37:43

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男女在线免费观看 | 理论片87福利理论电影 | 99成人| 亚洲一区二区三区视频 | 麻豆精品国产免费 | 欧美极品在线观看 | 日韩在线观看一区 | 一区二区三区四区在线 | 91porn成人精品| 一级免费毛片 | 日本免费一区二区三区四区 | 羞羞视频在线观看免费观看 | 国产成人99久久亚洲综合精品 | 久久成人一区二区三区 | 成人在线免费观看 | 成人不卡视频 | www.干| 国产999精品久久久久久绿帽 | 蜜桃久久 | 狠狠的干狠狠的操 | 国产91av视频在线观看 | 在线观看日本网站 | 午夜精品久久久久久不卡欧美一级 | 黄色毛片一级 | 欧美一区二区三区在线观看 | 久久国产综合 | 免费成人国产 | 五月激情综合网 | 日本不卡一区 | 日本三级电影在线免费观看 | 国产目拍亚洲精品99久久精品 | 97色在线观看免费视频 | 国产精品一区二区电影 | 91精品一区二区三区久久久久 | 视频在线一区二区 | 91久久精品国产91久久 | 日韩在线视频观看 | 中文字幕免费视频 | 日本久久网站 | 成人久久久 | 亚洲精品福利在线 |