• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種Android平臺跨進程音視頻加載方法技術(shù)

    技術(shù)編號:38876816 閱讀:17 留言:0更新日期:2023-09-22 14:09
    本發(fā)明專利技術(shù)公開一種Android平臺跨進程音視頻加載方法,包括如下步驟:視圖進程創(chuàng)建SurfaceView,并獲取用于進行OpenGL渲染的Surface引用;綁定后臺進程的AIDL服務(wù);通過AIDL服務(wù)把視圖進程的Surface應(yīng)用傳遞到后臺進程;后臺進程收到AIDL發(fā)送過來的Surface應(yīng)用以后初始化OpenGL環(huán)境;視圖進程通過AIDL服務(wù)通知后臺進程開始加載媒體資源;后臺進程收到加載資源通知以后開始讀取媒體資源,并對讀取到的媒體數(shù)據(jù)進行解碼;解碼完第一幀數(shù)據(jù)以后發(fā)送消息通知視圖進程播放成功。本發(fā)明專利技術(shù)解決前臺進程想要加載后臺進程媒體數(shù)據(jù)的應(yīng)用場景。景。景。

    【技術(shù)實現(xiàn)步驟摘要】
    一種Android平臺跨進程音視頻加載方法


    [0001]本專利技術(shù)涉及Android平臺
    ,特別涉及一種Android平臺跨進程音視頻加載方法。

    技術(shù)介紹

    [0002]Android(安卓)操作系統(tǒng)主要用于移動設(shè)備,如智能手機和平臺電腦等。全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達到10億臺。Android系統(tǒng)已經(jīng)成為智能手機領(lǐng)域占有量最高的系統(tǒng),Android應(yīng)用的開發(fā)也隨之蓬勃發(fā)展。
    [0003]Android Interface Definition Language(AIDL)是一種用于在Android應(yīng)用程序中進行跨進程通信的接口定義語言。AIDL允許不同的應(yīng)用程序在不同的進程中進行通信,以便共享數(shù)據(jù)和調(diào)用遠程服務(wù)。
    [0004]使用AIDL,您可以定義接口和方法,然后在不同的應(yīng)用程序之間進行遠程調(diào)用。AIDL文件定義了接口的方法、參數(shù)和返回類型,并生成對應(yīng)的Java接口文件和相關(guān)的代理類。這些代理類實現(xiàn)了IPC(Inter
    ?
    Process Communication)機制,使得應(yīng)用程序可以跨進程進行通信。
    [0005]AIDL提供了一種方便的方式來定義跨進程通信的接口,并自動生成相應(yīng)的代碼,簡化了開發(fā)者在處理IPC時的工作。在使用AIDL進行跨進程通信時,通常會涉及到客戶端和服務(wù)端兩個組件,客戶端通過綁定遠程服務(wù)來獲得遠程對象的引用,并通過接口進行方法調(diào)用和數(shù)據(jù)交換。
    [0006]然而在Android平臺不同的進程中是不能互相訪問對方的內(nèi)存資源,這意味著前臺進程創(chuàng)建聲明的一塊內(nèi)存地址只能在前臺進程內(nèi)部訪問使用,如果后臺進程想要直接訪問前臺進程這塊內(nèi)存是沒有訪問權(quán)限的,本技術(shù)因此而研發(fā)。

    技術(shù)實現(xiàn)思路

    [0007]針對現(xiàn)有技術(shù)存在的問題,本專利技術(shù)提供一種Android平臺跨進程音視頻加載方法,解決前臺進程想要加載后臺進程媒體數(shù)據(jù)的應(yīng)用場景;在這個應(yīng)用場景中,前臺進程提供音視頻渲染需要的Surface,后臺進程負責(zé)將音視頻數(shù)據(jù)解碼成原始數(shù)據(jù)并渲染到前臺進程的Surface上,實現(xiàn)業(yè)務(wù)和視圖顯示邏輯進行分離,最終達到的效果就是前臺進程可以正常顯示后臺進程的音視頻數(shù)據(jù),同時前臺進程可以控制后臺進程加載音視頻數(shù)據(jù)的狀態(tài),比如開始加載、暫停加載、恢復(fù)加載、釋放加載資源,另外后臺進程也可以將資源加載狀態(tài)通過AIDL方式告知前臺進程,實現(xiàn)前臺進程能“清楚感知”到后臺進程的實時狀態(tài)。
    [0008]為了實現(xiàn)上述目的,本專利技術(shù)提供一種Android平臺跨進程音視頻加載方法,包括如下步驟:
    [0009]步驟S1:視圖進程創(chuàng)建SurfaceView,并獲取用于進行OpenGL渲染的Surface引用;
    [0010]步驟S2:綁定后臺進程的AIDL服務(wù);
    [0011]步驟S3:通過AIDL服務(wù)把視圖進程的Surface應(yīng)用傳遞到后臺進程;
    [0012]步驟S4:后臺進程收到AIDL發(fā)送過來的Surface應(yīng)用以后初始化OpenGL環(huán)境;
    [0013]步驟S5:視圖進程通過AIDL服務(wù)通知后臺進程開始加載媒體資源;
    [0014]步驟S6:后臺進程收到加載資源通知以后開始讀取媒體資源,并對讀取到的媒體數(shù)據(jù)進行解碼;
    [0015]步驟S7:解碼完第一幀數(shù)據(jù)以后發(fā)送消息通知視圖進程播放成功;
    [0016]步驟S8:后臺進程把解碼完成的第一幀數(shù)據(jù)渲染到Surface上,或,進行播放;
    [0017]步驟S9:后臺進程加載播放完媒體數(shù)據(jù)以后通過AIDL服務(wù)通知視圖進程播放結(jié)束;
    [0018]步驟S10:視圖進程解綁AIDL服務(wù),并且回收渲染SurfaceView和Surface。
    [0019]優(yōu)選的,所述步驟S2中的綁定后臺進程的AIDL服務(wù)是通過AIDL協(xié)議進行綁定。
    [0020]優(yōu)選的,所述步驟S5中的媒體資源為本地的mp4文件。
    [0021]優(yōu)選的,所述步驟S5的后臺進程將媒體資源已經(jīng)開始加載的信息通過AIDL服務(wù)傳遞給視圖進程進行保存。
    [0022]優(yōu)選的,所述步驟S6的媒體數(shù)據(jù)包括視頻數(shù)據(jù)、音頻數(shù)據(jù)。
    [0023]優(yōu)選的,所述步驟S7中的第一幀數(shù)據(jù)包括YUV數(shù)據(jù)、PCM數(shù)據(jù),其中,YUV數(shù)據(jù)是通過將視頻數(shù)據(jù)解碼而獲得,PCM數(shù)據(jù)是通過將音頻數(shù)據(jù)解碼而獲得。
    [0024]優(yōu)選的,所述步驟S8中具體過程為:后臺進程把解碼完成的YUV數(shù)據(jù)使用OpenGL渲染到Surface上,把解碼完成的PCM數(shù)據(jù)使用系統(tǒng)音頻播放器進行播放。
    [0025]采用本專利技術(shù)的技術(shù)方案,具有以下有益效果:
    [0026]1、本專利技術(shù)極大的簡化了跨進程實現(xiàn)音視頻資源的加載,幾乎可以做到和單進程加載資源沒有差異,更簡潔、高效、安全的實現(xiàn)跨進程加載媒體資源,視圖進程只需要提供渲染需要的Surface,而不用關(guān)心媒體數(shù)據(jù)的來源以及數(shù)據(jù)是怎么加載解析以及渲染的;對于后臺進程來說,它只需要負責(zé)媒體數(shù)據(jù)的加載、解析以及渲染,從安全的角度來說也更安全,因為視圖進程只是提供了一個渲染“容器”而沒有途徑拿到渲染的真實數(shù)據(jù);
    [0027]2、本專利技術(shù)技術(shù)進程間通信方式采用的是Android原生支持的AIDL技術(shù),通過AIDL方式實現(xiàn)多個進程之前消息交互以及數(shù)據(jù)傳遞,AIDL在Android中廣泛應(yīng)用于多進程通信、遠程服務(wù)、跨應(yīng)用數(shù)據(jù)共享等場景,它提供了一種可靠、高效的方式來實現(xiàn)應(yīng)用程序之間的通信,并且具有良好的安全性和穩(wěn)定性;
    [0028]3、本專利技術(shù)解決前臺進程想要加載后臺進程媒體數(shù)據(jù)的應(yīng)用場景;在這個應(yīng)用場景中,前臺進程提供音視頻渲染需要的Surface,后臺進程負責(zé)將音視頻數(shù)據(jù)解碼成原始數(shù)據(jù)并渲染到前臺進程的Surface上,實現(xiàn)業(yè)務(wù)和視圖顯示邏輯進行分離,最終達到的效果就是前臺進程可以正常顯示后臺進程的音視頻數(shù)據(jù),同時前臺進程可以控制后臺進程加載音視頻數(shù)據(jù)的狀態(tài),比如開始加載、暫停加載、恢復(fù)加載、釋放加載資源,另外后臺進程也可以將資源加載狀態(tài)通過AIDL方式告知前臺進程,實現(xiàn)前臺進程能“清楚感知”到后臺進程的實時狀態(tài)。
    附圖說明
    [0029]圖1為本專利技術(shù)工作流程框圖;
    [0030]圖2為本專利技術(shù)時序圖。
    具體實施方式
    [0031]以下結(jié)合附圖和具體實施例,對本專利技術(shù)進一步說明。
    [0032]參照圖1
    ?
    2,本專利技術(shù)提供一種Android平臺跨進程音視頻加載方法,包括如下步驟:
    [0033]步驟S1:前臺進程的視圖進程創(chuàng)建好用于渲染的View,并獲取到可以用于進行OpenGL渲染的Surface引用,其中前臺進程,提供后臺進程渲染視頻幀需要的渲染視圖;后臺進程,負責(zé)音視頻數(shù)據(jù)的加載、解碼以及渲染;Surface:用于接收畫面渲染的“容器”;
    [0034]步驟S2:通過AIDL協(xié)議綁定后臺進程的AIDL服務(wù);
    [0035]步驟S3:通過AIDL服務(wù)把視圖進程的Surface應(yīng)用傳遞到后臺進程;
    [0036]步驟S本文檔來自技高網(wǎng)
    ...

    【技術(shù)保護點】

    【技術(shù)特征摘要】
    1.一種Android平臺跨進程音視頻加載方法,其特征在于,包括如下步驟:步驟S1:視圖進程創(chuàng)建SurfaceView,并獲取用于進行OpenGL渲染的Surface引用;步驟S2:綁定后臺進程的AIDL服務(wù);步驟S3:通過AIDL服務(wù)把視圖進程的Surface應(yīng)用傳遞到后臺進程;步驟S4:后臺進程收到AIDL發(fā)送過來的Surface應(yīng)用以后初始化OpenGL環(huán)境;步驟S5:視圖進程通過AIDL服務(wù)通知后臺進程開始加載媒體資源;步驟S6:后臺進程收到加載資源通知以后開始讀取媒體資源,并對讀取到的媒體數(shù)據(jù)進行解碼;步驟S7:解碼完第一幀數(shù)據(jù)以后發(fā)送消息通知視圖進程播放成功;步驟S8:后臺進程把解碼完成的第一幀數(shù)據(jù)渲染到Surface上,或,進行播放;步驟S9:后臺進程加載播放完媒體數(shù)據(jù)以后通過AIDL服務(wù)通知視圖進程播放結(jié)束;步驟S10:視圖進程解綁AIDL服務(wù),并且回收渲染SurfaceView和Surface。2.根據(jù)權(quán)利要求1所述的Android平臺跨進程音視頻加載方法,其特征在于,所述步驟S2...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:劉康,章永新,陳文浩
    申請(專利權(quán))人:深圳技威時代科技有限公司,
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 无码人妻一区二区三区一| 精品亚洲av无码一区二区柚蜜| 青青草无码免费一二三区| 成在人线av无码免费高潮喷水| 无码色AV一二区在线播放| 亚洲中文字幕久久精品无码APP| 亚洲Av无码精品色午夜| 无码精品人妻一区二区三区免费| 亚洲中文字幕久久无码| 亚洲AV无码一区二区乱孑伦AS| 中文字幕无码av激情不卡| 久久亚洲精品成人无码网站| 成人免费无遮挡无码黄漫视频| 成人无码网WWW在线观看| 无套内射在线无码播放| 亚洲AV无码久久精品成人| 日韩人妻无码一区二区三区久久| 亚洲av无码乱码在线观看野外| 国产成人精品无码播放| 内射人妻无码色AV天堂| 手机在线观看?v无码片| 国产激情无码一区二区| 国产成人无码AV片在线观看| 亚洲日韩精品无码专区加勒比☆| 久久久久亚洲AV无码专区网站| 无码日韩精品一区二区免费暖暖| 亚洲韩国精品无码一区二区三区| 亚洲国产精品无码成人片久久| 天天看高清无码一区二区三区| 亚洲Av无码乱码在线观看性色| 亚洲AV无码乱码在线观看富二代| 国产精品无码久久av不卡| 无码国产午夜福利片在线观看| 免费看成人AA片无码视频吃奶| 波多野结衣VA无码中文字幕电影| 国产成人无码一区二区在线观看| 在线观看成人无码中文av天堂| 亚洲av无码一区二区乱子伦as| 无码人妻AⅤ一区二区三区水密桃| 国产在线无码精品电影网| 无码av无码天堂资源网|