优酷鸿蒙开发实践|多屏互动开发实践
作者:玉追 & 以繩
優(yōu)酷與華為長期保持著良好的戰(zhàn)略合作關系,旨在為消費者帶來優(yōu)質(zhì)的影音娛樂體驗。鴻蒙操作系統(tǒng)的流轉(zhuǎn)特性為多屏互動帶來了全新的玩法,本文以優(yōu)酷播放中心的技術儲備為切入點,結合鴻蒙系統(tǒng)的鏡像和流轉(zhuǎn)特性,詳細介紹了普通流轉(zhuǎn)、自由視角和zoom 等核心能力在鴻蒙上的實踐之路。
背景介紹
鴻蒙分布式體驗
華為定義的分布式體驗主要包含連續(xù)性體驗和協(xié)同體驗兩種。
1連續(xù)性體驗
當用戶在一個設備上發(fā)起操作,并切換到另一個設備上繼續(xù)操作時,用戶能夠馬上在新的設備上繼續(xù)當前的操作。連續(xù)性體驗包括任務接續(xù)和音視頻接續(xù)。
2協(xié)同體驗
多個設備上的軟件和硬件能力相互協(xié)同,作為一個整體為用戶提供比單設備更加高效、沉浸的體驗。協(xié)同體驗包括軟件協(xié)同和硬件協(xié)同。
對于優(yōu)酷而言,我們已經(jīng)向用戶提供了如下的多屏互動功能。
- 用戶用手機觀看視頻到某一個時間點,然后切換到平板設備從剛才的中斷時間點繼續(xù)看視頻
- 用戶用手機或者平板打開一個視頻,然后使用投屏功能將視頻投射到智慧屏或者電視盒子上,在大屏上繼續(xù)觀看
- 用戶在大屏上遇到登錄或者支付等不方便使用大屏側(cè)客戶端完成的功能,他可以使用手機直接掃描大屏上的二維碼登錄或者支付。
上述功能,都是優(yōu)酷客戶端利用現(xiàn)有的“華為一碰傳”,“華為HiPlay”等功能可以直接實現(xiàn)的。我們希望借助鴻蒙OS提供的特色功能,實現(xiàn)若干當前優(yōu)酷客戶端所不具備的“新功能”,開發(fā)出若干“純鴻蒙”專有特性,然后與Android優(yōu)酷主客相融合。鴻蒙代碼與Android代碼相互聯(lián)動,共同為消費者提供各種酷炫的影音娛樂功能。
優(yōu)酷客戶端橫跨Android,iOS,iPad,OTT等多種軟硬件平臺,彼此之前可以通過投屏等功能相互聯(lián)動,天然具有多屏互動的場景。
而HarmonyOS采用了多種分布式技術,使得應用程序的開發(fā)實現(xiàn)與不同終端設備的形態(tài)差異無關。這能夠讓開發(fā)者聚焦上層業(yè)務邏輯,更加便捷、高效地開發(fā)應用。
在優(yōu)酷鴻蒙版本中,我們基于HarmonyOS提供的分布式總線能力,與優(yōu)酷端既有的投屏功能相結合,開發(fā)出全新的HarmonyOS多屏互動FA,提供多臺鴻蒙設備之間多屏互動的功能。
這個FA也是100%利用鴻蒙API編寫的,用戶可以通過優(yōu)酷鴻蒙版的播放頁“視頻流轉(zhuǎn)”按鈕,將手機端正在播放的視頻流轉(zhuǎn)到其它鴻蒙設備上(鴻蒙智慧屏,平板等),并可以將手機作為遙控器對大屏設備進行播控控制。
不僅能對大屏的音量、快進快退、播放速度、清晰度、劇集進行控制,還可以旋轉(zhuǎn)大屏上的自由視角視頻的角度。
“基于HarmonyOS的多屏互動”與傳統(tǒng)投屏的最大區(qū)別是,我們是利用HarmonyOS提供的“設備/服務發(fā)現(xiàn)機制”來搜索對端設備,使用HarmonyOS的“建立連接”功能來建立設備之間的雙向通信。
由于HarmonyOSOS的 “設備/服務發(fā)現(xiàn)機制”“建立連接”功能經(jīng)過高度優(yōu)化,我們自己的使用體驗是“HarmonyOS多屏互動”相比傳統(tǒng)DLNA或者Miracast鏡像功能,設備發(fā)現(xiàn)快,連接建立快,且連接建立之后非常穩(wěn)定,不容易斷連。
而且,我們可以通過此連接進行高速的數(shù)據(jù)傳輸,直接從操控側(cè)streaming視頻到大屏端。
下面,我們簡單介紹下HarmonyOS的分布式總線能力是如何與優(yōu)酷既有的投屏功能相結合的。
投屏業(yè)務概覽
投屏技術在我們?nèi)粘I詈凸ぷ髦械玫搅嗽絹碓蕉嗟膽?#xff0c;手機、平板、個人電腦等無線屏顯和擴展功能也給家庭、企業(yè)會議、產(chǎn)品發(fā)布、遠程培訓帶來了更加便捷、更加高效的模式變革。市場上相應的產(chǎn)品解決方案也是百花齊放,例如蘋果公司的 Airplay 無線投屏解決方案、WiFi 聯(lián)盟的 Miracast 無線投屏解決方案、谷歌公司的 ChromeCast 無線投屏解決方案、英特爾公司的 WIDI 無線投屏解決方案等,都在不同程度上推動了家庭和辦公場合多屏互動產(chǎn)品的升級演化。
無線投屏技術和網(wǎng)絡環(huán)境的改善其實已經(jīng)標志著高效智能時代的來臨,人們可以使用手機上網(wǎng)、看電視、娛樂、辦公,智能電視除了看電視外,更趨向于智慧屏、顯示屏的概念。大家希望能在電視上瀏覽信息、購物、玩游戲等等。人們更希望在大屏上享受看電視的沉浸感。未來的發(fā)展趨勢同樣也很明顯,市場巨大的潛在需求是投屏技術的最大推動力,將會呈現(xiàn)一個百花齊放的“盛景”。
作為國內(nèi)互聯(lián)網(wǎng)視頻巨頭之一,優(yōu)酷在投屏業(yè)務場景積累了豐富的技術和產(chǎn)品經(jīng)驗,并取得了非常迅速的發(fā)展;另外,優(yōu)酷獨有的播放能力,例如自由視角、zoom、AI超分、幀享4K等,也給多屏互動場景提供了強有力的擴展空間。整體而言,不管是優(yōu)酷的投屏業(yè)務還是播放能力,都為同華為的合作打下了堅實的基礎。
鴻蒙流轉(zhuǎn)場景
HarmonyOS 是新一代的智能終端操作系統(tǒng),為不同設備的智能化、互聯(lián)與協(xié)同提供了統(tǒng)一的語言,并帶來簡潔、流暢、連續(xù)、安全可靠的全場景交互體驗。HarmonyOS 自誕生之初就以 “萬物互聯(lián)” 為使命,通過一套代碼和核心的分布式技術,滿足了不同平臺上各種硬件的需求,打通了手機、平板、電腦、汽車和智能穿戴等多種設備,完美實現(xiàn)了不同設備之間的流轉(zhuǎn)。可以說,“流轉(zhuǎn)” 是鴻蒙生態(tài)最為核心的特性之一。
隨著智能時代的到來,流轉(zhuǎn)無處不在,不管是車機上的雙向控制,還是智能家居間的一觸即連;不管是辦公室的文件一碰投,還是手機和智慧屏的超級聯(lián)結,有屏幕的地方就能實現(xiàn)流轉(zhuǎn)。另一方面,5G 時代重新定義了大眾的文化娛樂方式,更大的屏幕、更高的碼率、更智能的流轉(zhuǎn)成為了核心訴求,在這個背景下,鴻蒙跟優(yōu)酷自然而然走到了一起。
優(yōu)酷投屏能力版圖
優(yōu)酷投屏能力不僅能覆蓋傳統(tǒng)的局域網(wǎng)協(xié)議,如 DLNA、AirPlay 等,還全新自研了云投屏協(xié)議,徹底打破了局域網(wǎng)組播的限制,提高了設備發(fā)現(xiàn)成功率。此外,為了增加全新玩法,最新的魔屏設備附贈了 NFC 貼紙,實現(xiàn)了一碰投功能,引入了全新的玩法。接下來詳細介紹下優(yōu)酷投屏的能力版圖。
能力版圖
無線投屏有三個最基本的要素:內(nèi)容、設備和協(xié)議。其中,內(nèi)容可以是非實時的數(shù)據(jù)文件,例如電影、圖片、音樂等,也可以是實時的數(shù)據(jù)流,例如屏幕鏡像、直播流等。設備包括發(fā)起投屏的內(nèi)容提供方(簡稱“發(fā)送端”)和接收投屏的內(nèi)容呈現(xiàn)方(簡稱“接收端”),其中常見的發(fā)送端包括手機、平板等移動設備,負責獲取遠端或本地存儲的媒體資源,并傳輸給接收端;接收端則負責響應來自發(fā)送端的內(nèi)容和播控指令,并完成后續(xù)的內(nèi)容呈現(xiàn)。協(xié)議則提供了發(fā)送端和接收端之間的交互規(guī)約,覆蓋了包括設備發(fā)現(xiàn)、數(shù)據(jù)傳輸、播放控制等核心鏈路,比較有代表性的協(xié)議包括局域網(wǎng)投屏場景的 SSDP 和 SOAP 協(xié)議、云投屏場景的 MTOP 和 ACCS 協(xié)議等。
多屏互動業(yè)務復雜度高,交互鏈路長,橫跨大小屏兩條業(yè)務線,涉及到包括廣告、會員、運營商、播放、硬件、媒資等非常多的業(yè)務方。
經(jīng)過大量需求的長期打磨,優(yōu)酷最終形成了如下的多屏互動版圖,可以分為投屏協(xié)議層,投屏播控層,業(yè)務適配層等核心組成部分:
投屏協(xié)議層
1、局域網(wǎng)投屏。包括 DLNA 和 AirPlay,通用性較強,但受限于組播能力,常會出現(xiàn)發(fā)現(xiàn)不了設備的問題;
2、云投屏。云投屏是為了解決局域網(wǎng)協(xié)議無法發(fā)現(xiàn)設備而自研的新協(xié)議,能有效提升設備發(fā)現(xiàn)成功率,但受限于自營的大屏端應用,通用性受到了較大的限制;
3、NFC投屏。作為魔屏新硬件宣推的新特性之一,NFC投屏配合附帶的貼紙,縮短了移動端投屏的操作鏈路,實現(xiàn)了優(yōu)酷視頻的 “一碰投”。
投屏播控層
業(yè)務適配層
鴻蒙系統(tǒng)初實踐
普通流轉(zhuǎn)
“鴻蒙流轉(zhuǎn)” 指利用了鴻蒙操作系統(tǒng)特性的多屏互動方式,與傳統(tǒng)投屏協(xié)議最大的區(qū)別在于對鴻蒙操作系統(tǒng)的依賴。具體而言,鴻蒙操作系統(tǒng)不僅提供了 “設備/服務發(fā)現(xiàn)機制” 作為設備發(fā)現(xiàn)的協(xié)議,還提供了 “設備連接能力” 支持設備之間進行雙向通信。
類似傳統(tǒng)的投屏協(xié)議,鴻蒙流轉(zhuǎn)包括基于URL的普通流轉(zhuǎn)和基于流傳輸?shù)牧鬓D(zhuǎn)。普通流轉(zhuǎn)是指基于鴻蒙傳輸能力的多屏互動方式,不同于 DLNA 等通用協(xié)議,鴻蒙提供了包括設備發(fā)現(xiàn)、數(shù)據(jù)傳輸、應用查詢、文件分享等核心能力,不僅能提供較原生協(xié)議而言更穩(wěn)定的連接,還能按照業(yè)務訴求,將自研的APK(例如酷喵)通過小屏傳輸至大屏并喚起,實現(xiàn)一系列定制化操作。
先圍繞普通流轉(zhuǎn)進行介紹,其時序圖如下所示。
如上圖所示,對其中部分核心流程的實現(xiàn)進行簡單介紹。
1鴻蒙設備發(fā)現(xiàn)
跟 DLNA 投屏和云投屏發(fā)現(xiàn)流程完全一致,鴻蒙的發(fā)現(xiàn)協(xié)議在 DlnaDevs 的 search 方法中實現(xiàn):
// 鴻蒙searchif (HarmonyCastMgr.haveInst()) {HarmonyCastMgr.getInst().searchDevs();// 自由視角searchif (HarmonyCastMgr.getInst().hasMirr()){HarmonyCastMgr.getInst().searchHarmonyMirrorDevs();}}再來看看鴻蒙發(fā)現(xiàn)流程的實現(xiàn)細節(jié):
// 搜索設備(異步方式)public boolean searchDevs() {boolean ret = false;if (isHarmonyEnable()) {Intent intent = new Intent();ComponentName componentName = new ComponentName(PackageContant.PACKAGE_YOUKU, "com.youku.feature.MiddlewareAbility");intent.setComponent(componentName);intent.putExtra(AbilityUtils.PARAM_KEY_INSTALL_ON_DEMAND, true);intent.setAction("action.videoplayer.getdevicelist");try {mActivity = YoukuContext.getTopActivity();ret = AbilityUtils.connectAbility(mActivity, intent, mServiceConnection);} catch (RuntimeException e) {e.printStackTrace();ret = false;}}return ret;}鴻蒙發(fā)現(xiàn)協(xié)議通過 AIDL 依賴了 FA 的通道,其中 mServiceConnection 內(nèi)部對 IBinder 對象進行了解析,映射為多屏互動定義的 Device 類型,并回調(diào)設備列表的更新接口,核心實現(xiàn)如下:
public ServiceConnection mServiceConnection = new ServiceConnection() {@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {LogEx.d(tag(), "onServiceConnected");HarmonyRCS rcs = new HarmonyRCS(service);String[] devices = null;try {devices = rcs.getDeviceList();} catch (RemoteException e) {e.printStackTrace();}// 設備ID和名稱數(shù)組,以適應鴻蒙AIDL查詢格式List<String> deviceIdList = new ArrayList<>();List<String> deviceNameList = new ArrayList<>();for (int i = 0; i < devices.length; i++) {if ((i & 1) == 0) {deviceIdList.add(devices[i]);} else {deviceNameList.add(devices[i]);}}// 原始數(shù)據(jù)映射為Client格式if (deviceNameList.size() >= deviceIdList.size()) {mHarmonyDevs.clear();for (int i = 0; i < deviceIdList.size(); i++) {String deviceId = deviceIdList.get(i);String deviceName = deviceNameList.get(i);if (StringUtils.isNotBlank(deviceId) && StringUtils.isNotBlank(deviceName)) {Client client = new Client();...mHarmonyDevs.put(deviceId, client);}}// 判斷大屏設備是否在線,如果不在線,則停止投屏if (DlnaApiBu.api().proj().stat() == DlnaPublic.DlnaProjStat.PLAYING) {Client currentDev = DlnaApiBu.api().proj().req().mDev;if (currentDev != null && currentDev.isHarmonyDev() && !mHarmonyDevs.containsKey(currentDev.getDeviceUuid())) {stopProjEx();}}// 回調(diào)調(diào)用方獲取設備列表if (null != mRcsCallback) {mRcsCallback.onHarmonyDevsChanged();}}try {if (mActivity != null) {AbilityUtils.disconnectAbility(mActivity, mServiceConnection);}} catch (Exception pE) {pE.printStackTrace();}}@Overridepublic void onServiceDisconnected(ComponentName name) {LogEx.d(tag(), "onServiceConnected");}};2選擇設備并啟動FA
類似云投屏自研協(xié)議,鴻蒙普通流轉(zhuǎn)依賴單獨的發(fā)現(xiàn)流程,類似于其他協(xié)議,創(chuàng)建 HarmonyCastTrunkBiz 以作為鴻蒙協(xié)議管理類,并實現(xiàn)了如下基礎接口:
// 開始投屏void start();// 停止投屏void stop();// 發(fā)送播放指令void play();// 發(fā)送暫停指令void pause();// 發(fā)送seek指令void seek(int prog);// 發(fā)送設置音量指令void setVolume(int volume);由于鴻蒙 FA 提供了定制的遙控器界面和雙向數(shù)據(jù)傳輸通道,因此所有發(fā)送指令的任務均由鴻蒙 FA 接管,上述負責發(fā)送指令的接口僅僅同步了小屏端的播放狀態(tài)。用戶點擊選中鴻蒙設備后,觸發(fā) start 方法并啟動鴻蒙協(xié)議入口,由 HarmonyCastMgr 的 startHarmony 負責同鴻蒙 FA 之間的數(shù)據(jù)交互:
// 投屏所需的播放數(shù)據(jù)HarmonyCastData castData = new HarmonyCastData();castData.mDev = req.mDev;castData.mUrl = req.mUrl;castData.metaData = DlnaMetadata.getInst().getMetadataWithReq(req);castData.isFromNowbar = isFromNowbar;// FA遙控器所需的UI數(shù)據(jù)HarmonyParameterBean parameterBean = new HarmonyParameterBean();parameterBean.deviceUuid = req.mDev.getDeviceUuid();parameterBean.mShowTitle = req.mShowTitle;parameterBean.projSource = "";parameterBean.isYoukuApp = req.mDev.isYoukuApp;String parameterData = JSON.toJSONString(parameterBean);// 按FA數(shù)據(jù)格式進行封裝String touchuanData = JSON.toJSONString(castData);HarmonyPaBean paBean = new HarmonyPaBean();paBean.touchuanData = touchuanData;paBean.parameterData = parameterData;final String harmonyJson = JSON.toJSONString(paBean);Activity activity = YoukuContext.getTopActivity();Intent jIntent = new Intent();ComponentName component = new ComponentName(PackageContant.PACKAGE_YOUKU, "com.youku.feature.MainAbility");jIntent.putExtra(AbilityUtils.PARAM_KEY_INSTALL_ON_DEMAND, true);jIntent.putExtra("harmonyJson", harmonyJson);jIntent.setComponent(component);try {// 每次開始投屏前檢測一次遠端是否在線,避免因大屏掉線導致的投屏失敗boolean remoteValid = true;if (HarmonyCastMgr.haveInst()) {remoteValid = HarmonyCastMgr.getInst().searchDevs();}if (remoteValid) {AbilityUtils.startAbility(activity, jIntent);} else {stopProjEx();}} catch (Exception e) {e.printStackTrace();}自由視角
自由視角由阿里文娛摩酷實驗室研發(fā),是一種可以隨意滑動視頻、自由切換觀看視角的播放技術。自由視角視頻是多視角直播的進一步發(fā)展,帶給用戶更多的主動性。用戶可以在觀看球賽時旋轉(zhuǎn)視角,并放大局部畫面,近距離觀看偶像球員的灌籃動作,實現(xiàn)堪比跨次元的真實觀影體驗。
以下是 “這就是街舞” 綜藝的自由視角效果:
視頻請見原文中:優(yōu)酷鴻蒙開發(fā)實踐|多屏互動開發(fā)實踐
不同于普通視頻,自由視角視頻的碼率普遍偏高。例如上述街舞錄制現(xiàn)場,總共安裝了超過 40 臺專用相機,形成的陣列采集畫面全方位記錄了每個精彩瞬間,并實現(xiàn)毫秒級同步和遠程協(xié)同控制,采集到的畫面經(jīng)過焦點矯正和3D重建,再基于各機位采集到的紋理、深度、姿態(tài)等參數(shù)信息,最終將多角度分散的畫面拼接成一個高達6K、8K的高清視頻文件。
因此,自由視角視頻在提升用戶觀感的同時,也對播放端的網(wǎng)絡環(huán)境和解碼性能提出了非常高的要求。最初的自由視角實現(xiàn)方案是基于流轉(zhuǎn)特性,小屏端將自由視角視頻的 M3U8 地址或播控指令,通過上述流轉(zhuǎn)能力傳遞給大屏側(cè),由大屏側(cè)完成數(shù)據(jù)的下載、解碼和渲染等后續(xù)流程。但考慮到華為智慧屏的硬件性能不足以支撐這種規(guī)模的計算量,傳統(tǒng)的流轉(zhuǎn)方案不得不被叫停。
為此,開發(fā)團隊對比了鴻蒙系統(tǒng)上現(xiàn)存的所有投屏協(xié)議,得到如下表的結論:
| 鴻蒙投屏協(xié)議 | 優(yōu)點 | 缺點 |
| DLNA | 標準成熟協(xié)議,通用性強 | 原生擴展能力較弱 |
| 云投屏 | 不依賴局域網(wǎng),擴展性強 | 通用性較差 |
| 鴻蒙協(xié)議 | 系統(tǒng)適配度高,擴展能力強 | 依賴鴻蒙系統(tǒng) |
| Cast+協(xié)議 | 系統(tǒng)適配度高,兼容性強,滿足流傳輸需要 | 依賴華為生態(tài) |
經(jīng)過內(nèi)部評估以及同華為研發(fā)團隊的討論,開發(fā)團隊最終決定放棄傳統(tǒng)的基于URL的投屏方式,采用基于華為 Cast+ 的鏡像投屏方案,具體而言,是在手機端正常播放和操控自由視角視頻,并把播放器視圖通過Cast+鏡像到電視端。
簡單介紹下華為 Cast+ 協(xié)議的實現(xiàn)細節(jié)。如下圖所示,華為 Cast+ Kit 是華為自研的、以手機為中心的多屏協(xié)同組件,業(yè)務方可據(jù)此實現(xiàn)多設備之間快速、穩(wěn)定、低時延的鏡像傳輸。
基于華為 Cast+ 協(xié)議,自由視角場景的投屏鏈路跟普通投屏協(xié)議大體保持一致,重疊的部分包括設備搜索、選擇設備和建連,不同之處在于,自由視角視頻最后一步并沒有投放播放地址到大屏,而是創(chuàng)建虛擬屏并完成顯示,虛擬屏的創(chuàng)建時機和方式是實踐過程中的重中之重。
自由視角流轉(zhuǎn)方案的本質(zhì),可以概括為兩個方面:首先,將遙控器頁面作為主屏幕,打通其與播放頁之間的雙向數(shù)據(jù)通道,以實現(xiàn)播放控制和狀態(tài)同步;其次,在虛擬屏上啟動播放相關的視圖,作為鏡像和傳輸?shù)酱笃恋膬?nèi)容。
主屏幕的方案基本確定,輪到虛擬屏的時候卻踩了坑。最初能想到的虛擬屏渲染對象,自然而然是全屏播放頁,然而試了才發(fā)現(xiàn),直接將全屏播放頁渲染到虛擬屏,會存在如下兩個問題,附帶分析報告如下:
問題1:主屏幕上的遙控器頁面首先被鏡像到大屏。
- 原因:Cast+ 會在建連成功后、設備處于 PLAYING 狀態(tài)時,開始抓取虛擬屏的內(nèi)容,如果虛擬屏尚未加載,會截取主屏幕內(nèi)容作為兜底。經(jīng)過測試,這個時間差大概在 100ms 左右,而期間播放頁無法完成初始化,因此會存在主屏幕內(nèi)容占用的問題。
問題2:播放頁進入后存在橫豎屏切換邏輯,導致鏡像后屏幕會經(jīng)歷一次轉(zhuǎn)屏。
- 原因:屬于播放頁自適應邏輯,初始進入時為豎屏,在鏡像后會觸發(fā)橫屏切換邏輯,從而導致大屏側(cè)的轉(zhuǎn)屏。
內(nèi)部綜合評估后,決定采用更加輕量的方式實現(xiàn)虛擬屏。我們發(fā)現(xiàn),播放器 Dialog 中只包含 SurfaceView 和 Loading 狀態(tài)等內(nèi)容,如果僅僅鏡像 Dialog 級別,雖然增加了較多的播放器處理邏輯,但保證了上屏速度和更快的響應效率。調(diào)整后的方案結構如下圖所示。
該方案具備如下優(yōu)勢:
綜上所示,最終的效果如下視頻所示。
視頻請見原文中:優(yōu)酷鴻蒙開發(fā)實踐|多屏互動開發(fā)實踐
線上表現(xiàn)
網(wǎng)友們對鴻蒙系統(tǒng)的特性和優(yōu)酷鴻蒙版本的表現(xiàn),也表現(xiàn)出了強烈的興趣,我們摘取了網(wǎng)上的一些體驗視頻,列舉如下:
- 《優(yōu)酷鴻蒙版體驗——轉(zhuǎn)自知乎》:https://www.bilibili.com/video/BV1A5411w76Y/
- 《鴻蒙優(yōu)酷投屏 愛了愛了》:https://www.bilibili.com/s/video/BV1pU4y187t3
隨后,經(jīng)過兩個版本的持續(xù)迭代,優(yōu)酷鴻蒙版的穩(wěn)定性和體驗得到了極大改善。另一方面,伴隨著鴻蒙系統(tǒng)的自我完善,優(yōu)酷鴻蒙版的二期需求版本已經(jīng)開始排期,相信在雙方強強聯(lián)合之下,會持續(xù)給市場和用戶帶來驚喜。
總結
在優(yōu)酷鴻蒙版多屏互動專項的開發(fā)過程中,各參與方在鴻蒙接口和調(diào)試環(huán)境尚不完善的時候介入,克服了重重困難,不斷探索試錯,在極短的時間內(nèi)掌握了鴻蒙開發(fā)技術棧,不僅順利完成了大大小小的開發(fā)任務,還反饋給華為技術團隊不少遺留問題和改進建議。這是雙方再一次的深度合作,也是一次非常成功的實踐。
對于華為而言,優(yōu)酷鴻蒙版不僅給鴻蒙生態(tài)帶來了開創(chuàng)性的視頻新交互形式,讓新用戶大呼過癮;而且完美適配了鴻蒙系統(tǒng)流轉(zhuǎn)特性、為后續(xù)更豐富的新玩法鋪平了道路。對于優(yōu)酷而言,鴻蒙上的多屏互動實踐,大大擴展了現(xiàn)有的多屏互動能力版圖,為鴻蒙新時代積累了重要經(jīng)驗。
關注我們,每周 3 篇移動技術實踐&干貨給你思考!
總結
以上是生活随笔為你收集整理的优酷鸿蒙开发实践|多屏互动开发实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 规则引擎在数据治理平台的实践
- 下一篇: 计算机模拟太阳系,科学家通过计算机模拟发