精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何實現 Android 短視頻跨頁面的流暢續播?

移動開發 Android
本文主要介紹盒馬短視頻從普通展示頁進入沉浸式頁面時跨頁面續播能力和流暢的動畫切換效果的實現過程。

短視頻作為內容重要的承載方式,是吸引用戶的重點,短視頻的內容與體驗直接關系到用戶是否愿意長時停留。因此,體驗的優化就顯得尤為重要。

跨頁面續播

跨頁面續播是除秒播外另一個可以從體感上增加用戶體驗的能力。由于一些業務場景需要在不同頁面上播放同一個視頻內容的場景,而這些場景頁面切換往往是連續的,這就要求短視頻的播放也是連續。這樣才能使得體驗上會有連貫性,讓用戶在進入沉浸式頁面時,能流暢的過度,并無感知的繼續播放,從而產生連續不間斷的感受。

在優化前,盒馬沉浸式短視頻播放頁面的體驗與主流短視頻 App 有明顯差距。從卡片列表頁面跳轉視頻沉浸式頁面時,相同視頻無法續播,影響用戶觀賞和體驗。下面主要介紹盒馬短視頻從普通展示頁進入沉浸式頁面時跨頁面續播能力和流暢的動畫切換效果的實現過程。

環境

  • 手機:Pixel 4
  • os:Android 10
  • 播放器:淘寶播放器

效果對比

首先我們來看一下盒馬優化前后與主流短視頻 App 的效果對比

問題分析

從對比可以看出,續播的關鍵在于視頻流的復用以及頁面轉場動畫。

◆ 視頻流的復用

要解決流的復用,同時又要保證進入新的頁面時可以立即播放,不產生聲音和畫面的頓挫,這里根據上一篇 《揭秘盒馬鮮生 APP Android 短視頻秒播優化方案》 的分析,必須要解決視頻下載,加載解碼的耗時。

  • 根據 《揭秘盒馬鮮生 APP Android 短視頻秒播優化方案》 里講到緩存原理,這里可以利用播放器播放同一個視頻(注意統一 URL,盒馬全部轉為 H.265)來避免多次下載。
  • 加載解碼的耗時則需要播放器復用來解決。這里涉及到實現方案,可參照下一章的續播方案選型。

◆ 轉場動畫

轉場動畫能顯著提高體感流暢度,但實現過程中需要考慮各種兼容問題。

續播方案選型

在優化前期,我們考慮了三種續播方案。

1. 播放器 View 跨頁面傳遞

優點:思路簡單,體驗效果好。

缺點:業務侵入嚴重,不具通用性,播放器業務回調無法隔離,不利于續播放器管控。

2. 基于 Surface(View) 級別的全局播放器管理

優點:體驗效果好,能擴展內存管控,侵入性低。

缺點:實現復雜,需要改寫底層 HMVideoView 的封裝邏輯;改造中易出現內存泄漏,較難排查。

3. 基于 MediaPlayer 級別的全局播放器管理

優點:無侵入,能擴展內存管控,實現快(可復用和擴展淘寶播放器底層 token 機制)

缺點:需要一定的改造,體驗比方案 1、2 略差(聲音有一瞬間的頓挫,不明顯)

盒馬最終選擇 方案 3 ,這里方案 2 和 3 原理是相同的,沒有明顯的優劣之分,最終選擇方案 3 是因為這是目前穩定性最高,成本最低的方法。后續的播放器續播、復用、管理的分析同樣適用于方案 2。

播放器續播、復用和管理

業務上,我們需要實現續播,通過問題分析,我們已經知道,通過視頻流的復用即可實現,而視頻流的復用這里選擇通過復用 MediaPlayer 實現(也可以復用 Surface+MediaPlayer)。

1 解耦播放器 View 與 MediaPlayer 層

將 MediaPlayer 從 TaobaoPlayerView 中拆解出來,通過 MediaPlayerManager 進行全局管理。全局管理后,所有的播放器的 MediaPlayer 都由 MediaPlayerManager 分配和控制。

各組建間關系

2 業務流程

確保業務流程中,只需要關心業務與 VideoView 之間的交互,底層播放器復用由 MediaPlayerManager 實現。

3 播放器復用(管理)原理

播放器復用是管理的一個子集,所以這里一起介紹。主要原來有以下幾個原則:

  • 全局播放器(MediaPlayer)控制最多創建 4 個;
  • 超過 4 個播放器,創建第 5 個時,先銷毀最少使用的播放器的 MediaPlayer;
  • 每個播放器隨機分配一個 token(時間戳 + 隨機數),也可以開發者指定;
  • 相同 token 的播放器,共享 MediaPlayer;
  • 一個 MediaPlayer 同時只能被 1 個播放器 Surface 所綁定和持有;
  • 存在相同 token 的播放器,當前播放器在銷毀時,保留 MediaPlayer 實例;
  • 已創建的播放器恢復播放,但 MediaPlayer 被其他后創建的播放器占用時,解綁 MediaPlayer 并重新綁定當前播放器。

4 場景模擬

場景一:APP 共創建 4 個及以內播放器。

場景二:創建超過 4 個播放器時。

場景三:新創建的播放器 token 已存在時,復用 MediaPlayer。

場景四:存在 token 與當前即將被銷毀的播放器 token 一致時(或已被解除 MediaPlayer 的播放器播放時)。

邏輯流程圖

從場景總結,MediaPlayer 主要提供 復用、恢復、銷毀、驅逐(創建) 四個能力。

轉場動畫

目前轉場動畫有兩個方案可選:

1. Android 自帶的元素動畫

優點:動畫流暢順滑,無需實現動畫邏輯,由系統自己實現。

缺點:侵入嚴重,需要改寫 Nav 層,在 View 復用的方案下有白屏和黑屏。

2. 自定義實現屬性動畫

優點:侵入小,只需要前置頁極少的坐標信息,如果是 View 復用方案,甚至不需要前置頁提供坐標信息;兼容性好,適用于各種播放器復用場景。

缺點:需要自己實現動畫,有一定的閃爍感。

動畫原理

  1. 前置頁跳轉到沉浸式,傳遞播放器坐標 Rect 信息;
  2. 沉浸式默認透明,并根據 Rect 坐標信息創建播放器(復用);
  3. 開始動畫,將播放器 View 放大至正確位置,同時背景不透明度增加。

(注意:這里最后要將沉浸式頁的主題設為不透明,否則前置頁不會執行 onStop()   具體參考下一節,生命周期填坑。)

ps:返回動畫同理,過程相反即可。

生命周期填坑

屬性動畫原理存在一個坑。

問題描述:

假設頁面為 A->B,方案 3 要求 B 頁面在動畫過程中是全透明的。當 B 的 theme 中 windowIsTranslucent 為 true 時,A->B 過程 A 的生命周期無法走向 stop(即便 B 頁面動畫結束,完全遮蓋 A 頁面)。因此,A 的生命周期沒有按照預期執行,一些需要 onStop 執行的場景下,業務就無法正常執行

B Ativity 的樣式(注:示例代碼):

<style name="MyTransparent" parent="xxxx">
<item name="android:windowFullscreen">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowAnimationStyle">@style/noAnimation</item>
</style>

解決方案:

  1. 進入動畫結束時,通過反射調用 Activity 的 convertFromTranslucent 方法, 使 activity 不透明;
  2. 返回動畫開始時,通過反射調用 Activity 的 convertToTranslucent 方法,使 activity 透明。

后續優化展望

關于多媒體的優化工作還有很多可以做。除了續播和沉浸式秒播等場景外,我們還可以:

  1. 對播放器的一般性場景進行秒播優化,如首頁列表的卡片視頻;
  2. 對播放器的全局實例管控,控制播放器創建數量,從而優化內存。

未優化:

操作:連續開啟 30~50 個頁面及播放器。

現象:內存飆升,手機發燙,影響手機正常使用。

優化后:

操作:每秒開啟 1 個頁面和播放器,連續開啟 100 個。

現象:內存呈鋸齒狀正常上升,無明顯飆升現象,軟件運行正常。

責任編輯:張燕妮 來源: 阿里巴巴移動技術
相關推薦

2021-07-20 09:45:58

PythonEV短視頻

2022-08-11 09:30:52

transitionCSS

2018-10-16 15:08:20

屏幕圖像對象

2013-01-08 11:00:06

YouTubeAJAXCSS

2009-07-02 13:36:24

動態頁面JSP技術

2009-11-23 16:09:50

PHP實現偽靜態化頁面

2013-05-09 09:15:24

大數據短視頻酷6

2012-04-19 16:41:24

Titanium視頻實現頁面跳轉

2021-08-26 10:04:27

小米MIUI12.5

2018-06-07 15:42:21

微播易,短視頻,智能,

2009-07-03 18:12:49

JSP頁面

2015-06-16 16:26:27

2017-06-27 11:42:53

互聯網

2017-06-27 13:38:38

互聯網

2020-11-13 08:17:48

App(滑動切換)

2011-03-09 15:13:26

組播MAC地址

2020-04-21 14:00:25

HTMLCSSJS

2013-04-15 14:46:48

Android應用Android流暢性

2019-12-23 09:27:43

Python短視頻視頻
點贊
收藏

51CTO技術棧公眾號

高清无码一区二区在线观看吞精| 国产精品视频导航| 国产成人av一区二区三区不卡| 日本精品在线中文字幕| 中文字幕在线观看不卡| 亚洲自拍偷拍一区| 天堂а√在线中文在线新版| 天天做综合网| 日韩精品中文字幕在线| 一路向西2在线观看| 色a资源在线| 久久久精品国产99久久精品芒果| 91视频在线免费观看| 无码人妻aⅴ一区二区三区有奶水| 天天影视综合| 亚洲欧洲在线观看| 日本人妻一区二区三区| 91天天综合| 午夜电影一区二区| 日韩国产精品毛片| yw视频在线观看| 91香蕉国产在线观看软件| 成人免费看吃奶视频网站| 久久久久久少妇| 合欧美一区二区三区| 日韩中文在线中文网在线观看| 国产精品一区二区无码对白| 亚洲成人a级片| 色综合激情五月| 久久久久久久久久网| a篇片在线观看网站| 中文一区在线播放| 欧美激情论坛| 色综合视频在线| 国产69精品久久久久毛片| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 欧美日韩国产精品专区 | 日韩一区二区精品葵司在线| 日韩中文字幕组| 亚洲三级欧美| 午夜欧美在线一二页| 99久久久精品视频| 成人区精品一区二区不卡| 国产精品久久久久久妇女6080 | 精品福利电影| 成人444kkkk在线观看| 亚洲女人久久久| 午夜久久免费观看| 久久久国产精彩视频美女艺术照福利| 欧美18—19性高清hd4k| 黄色不卡一区| 永久免费毛片在线播放不卡| 男人舔女人下部高潮全视频| 欧美精品乱码| 中文字幕国产日韩| 国产wwwwxxxx| 欧美影院一区| 国a精品视频大全| 日本一区二区网站| 国产精品久久777777毛茸茸| 91sa在线看| 欧美精品一二三四区| 久久久久国产精品一区二区| 国产成人久久久| 伊人网视频在线| 精品无人区卡一卡二卡三乱码免费卡| 国产欧美一区二区| a级片在线免费看| 成人午夜电影小说| 欧美动漫一区二区| 在线免费看a| 亚洲精品国久久99热| 欧美一级视频在线播放| 欧美办公室脚交xxxx| 欧美中文一区二区三区| 久久久久久久久久久久久久久国产| 99国内精品久久久久| 日韩欧美中文字幕公布| 精品一区二区视频在线观看| 国产精品一区2区3区| 久久精品成人欧美大片古装| 免费网站看av| 久久精品天堂| 91在线观看免费高清| 免费看av毛片| 中文乱码免费一区二区| 日韩中文字幕在线不卡| 中文字幕在线直播| 欧美老年两性高潮| 粉嫩av懂色av蜜臀av分享| 成人在线免费视频观看| 久久91精品国产91久久跳| 国产成人在线免费视频| 久久国产精品区| 精品视频一区二区三区四区| 午夜在线小视频| 亚洲高清免费视频| 亚洲欧洲日本精品| 巨人精品**| 神马久久桃色视频| 可以免费在线观看的av| 国内成人免费视频| 欧美男人的天堂| 污污的网站在线免费观看| 色94色欧美sute亚洲13| 中文字幕一区二区三区人妻在线视频| 亚洲成a人片77777在线播放| 欧美不卡视频一区发布| 无码无套少妇毛多18pxxxx| 国产成人综合在线观看| 亚洲开发第一视频在线播放| 美女网站在线看| 91精品国产高清一区二区三区蜜臀| 丰满大乳奶做爰ⅹxx视频| 欧美国产高清| 国产日韩欧美电影在线观看| 日韩一二三四| 亚洲va欧美va人人爽| 91欧美一区二区三区| 欧美色爱综合| 国产99久久精品一区二区 夜夜躁日日躁| 国产免费不卡av| 国产区在线观看成人精品| 无码中文字幕色专区| 日本免费一区二区三区视频| 色老头一区二区三区| 在线永久看片免费的视频| 成人黄色综合网站| 日本久久久网站| 精品国产三级| 久久久精品中文字幕| 亚洲熟女乱色一区二区三区久久久| 91网上在线视频| 国产美女在线一区| jizz性欧美23| 欧美日本国产在线| www.热久久| |精品福利一区二区三区| 五月婷婷丁香色| 日韩中文首页| 国产精品一二三视频| 福利片在线看| 欧美羞羞免费网站| youjizz亚洲女人| 日本91福利区| 亚洲精品日韩成人| 激情亚洲小说| www.日韩系列| 国产免费黄色录像| 亚洲精品伦理在线| 成年人小视频在线观看| 红桃视频国产一区| 国产日韩精品一区观看| 密臀av在线播放| 亚洲美女视频网站| 久久国产乱子伦精品| 欧美经典一区二区| www.这里只有精品| 婷婷亚洲综合| 成人av免费在线看| 国产高潮在线| 亚洲欧美在线x视频| www.亚洲激情| 中文字幕日韩av资源站| 亚洲性图第一页| 99国产精品私拍| 欧美激情论坛| 日韩午夜电影免费看| 欧美猛少妇色xxxxx| 婷婷在线免费视频| 一本色道久久综合亚洲91| 日本乱子伦xxxx| 精品一区精品二区高清| 欧美日韩激情四射| 综合亚洲自拍| 国产主播欧美精品| 黑人精品视频| 一区二区中文字幕| 国产成人精品av在线观| 欧美日韩国产精品一区二区三区四区 | 午夜视频一区在线观看| xxxx日本免费| 加勒比av一区二区| 国产精品成人久久电影| 精品久久网站| 国产精品一区视频网站| 性高爱久久久久久久久| 成人97在线观看视频| 男人av在线| 欧美一区二区在线看| 成年人免费高清视频| 国产精品久久一级| 少妇一级淫免费观看| 久久99九九99精品| 波多野结衣综合网| 亚洲欧美网站在线观看| 欧美高清视频一区| 丁香婷婷成人| 成人黄色中文字幕| 成人影院入口| 久久97久久97精品免视看| 暖暖视频在线免费观看| 日韩欧美中文字幕精品| 中文字幕精品在线观看| 午夜一区二区三区在线观看| 亚洲色图 激情小说| 成人av电影免费观看| 91精品999| 久久久噜噜噜久久狠狠50岁| 欧美日韩激情四射| 午夜精品久久久久久久四虎美女版| 欧美重口乱码一区二区| 成人午夜网址| 97自拍视频| 精品亚洲a∨| 国产成人亚洲综合91| 国产经典三级在线| 久久九九亚洲综合| av中文字幕一区二区三区| 亚洲国产天堂网精品网站| 国产三区在线播放| 欧美日韩在线直播| 国产精品熟女视频| 欧美午夜视频在线观看| 国产午夜福利片| 亚洲精品成人悠悠色影视| 国产精品麻豆一区| 日本一区二区三级电影在线观看 | 91小视频网站| 日韩av网站免费在线| 日本中文字幕片| 国产精品色网| 浮妇高潮喷白浆视频| 亚洲国产一区二区精品专区| 免费网站在线观看视频| 你懂的国产精品永久在线| 综合久久国产| 99欧美视频| 中文字幕剧情在线观看一区| 视频在线不卡免费观看| 亚洲免费在线精品一区| 日韩系列欧美系列| 伊人久久大香线蕉精品| 久久一区二区三区电影| 一区二区三区免费看| 围产精品久久久久久久| japanese在线视频| 伊人久久大香线蕉综合四虎小说 | 日韩欧美第一区| av免费观看在线| 日韩精品一区二区三区四区| 亚洲精品喷潮一区二区三区| 欧美mv和日韩mv国产网站| 欧美熟妇另类久久久久久不卡| 精品福利一二区| 五十路在线观看| 国产视频精品免费播放| 黄色在线网站| 日韩在线小视频| 色婷婷在线播放| 欧美亚洲国产日韩2020| 欧美123区| 91免费精品视频| 亚洲一区二区三区日本久久九| 肥熟一91porny丨九色丨| 久久草在线视频| 日本午夜精品一区二区三区| 日本在线电影一区二区三区| 正在播放精油久久| 伊人狠狠色j香婷婷综合| 777精品久无码人妻蜜桃| 久久亚洲图片| 久久久久久久久久一区| www.激情成人| www..com.cn蕾丝视频在线观看免费版 | 777午夜精品视频在线播放| 亚洲av少妇一区二区在线观看 | 久久aⅴ乱码一区二区三区| wwww.国产| 粉嫩久久99精品久久久久久夜| 白嫩情侣偷拍呻吟刺激| 欧美极品美女视频| 久草视频在线资源| 日本精品一区二区三区高清 | 成人一二三四区| 91精品国产一区二区| 亚洲AV成人无码一二三区在线| 中文字幕日韩专区| free性欧美| 国产精品自产拍高潮在线观看| caoporn成人| 图片区小说区区亚洲五月| 午夜性色一区二区三区免费视频| 精品视频免费在线播放| 激情综合色播激情啊| 免费在线观看成年人视频| 成人欧美一区二区三区视频网页| 日韩欧美a级片| 欧美日韩国产首页| 神马久久高清| 欧美日韩高清区| 粉嫩91精品久久久久久久99蜜桃 | 国产欧美亚洲精品| 欧美顶级毛片在线播放| 经典三级在线视频| 青青草国产精品97视觉盛宴| 一级黄色免费视频| 国产精品国产精品国产专区不蜜 | 97人人澡人人爽人人模亚洲| 7777精品伊人久久久大香线蕉的| 四虎在线观看| 久久久久久久久久国产精品| 日韩国产一二三区| 日韩精品大片| 久久精品成人| 亚洲蜜桃精久久久久久久久久久久| 成人免费在线播放视频| 日韩乱码一区二区三区| 精品亚洲一区二区三区在线播放 | 欧美亚洲高清一区二区三区不卡| 免费观看a视频| 欧美巨猛xxxx猛交黑人97人| 国产乱子精品一区二区在线观看| 欧美黑人xxxxx| 免费一区视频| 亚洲国产精品成人综合久久久| 亚洲一区二区在线免费看| 国产理论视频在线观看| 在线日韩精品视频| 日本一区免费网站| 日韩成人av电影在线| 久久一区中文字幕| 亚洲一区二区三区蜜桃| 欧美日韩另类在线| 少妇人妻偷人精品一区二区| 久久久久久中文字幕| 一区二区三区亚洲变态调教大结局 | 日韩av一二三| 在线观看免费小视频| 91久久精品日日躁夜夜躁欧美| 天堂av中文在线资源库| 欧美亚洲免费电影| 尤物tv在线精品| 日韩免费毛片视频| 久久久久久久久久久久久女国产乱| 成人免费看片98欧美| 国产丝袜一区视频在线观看| 天堂中文在线播放| 欧美日本韩国国产| 日本在线不卡视频| 99自拍偷拍视频| 51精品视频一区二区三区| 中文字幕在线观看播放| 成人h视频在线观看| 亚洲国产精品一区制服丝袜| 国产不卡一二三| 欧美性感美女h网站在线观看免费| 三级毛片在线免费看| 国产成+人+综合+亚洲欧美丁香花| 国产一区网站| 色呦色呦色精品| 亚洲精品自拍动漫在线| 亚洲国产精品国自产拍久久| 午夜精品久久久久久久99热 | 在线成人av电影| 国产一区二区三区综合| 久久久久97国产| 日韩精品在线观看网站| 成人1区2区| 在线观看av的网址| 不卡的看片网站| 亚洲欧美日韩一区二区三区四区| 色综合影院在线| silk一区二区三区精品视频 | 国内成+人亚洲+欧美+综合在线| 久久久全国免费视频| 精品小视频在线| 99综合久久| 日本日本19xxxⅹhd乱影响| 国产拍欧美日韩视频二区| 99国产在线播放| 91精品国产沙发| 欧美国产一级| 黄色污在线观看| 欧美久久久久久蜜桃| 超碰成人av| 亚洲人久久久| caoporen国产精品视频| 中文字幕人妻精品一区| 欧美高跟鞋交xxxxxhd| 中国av一区| 久久久久无码精品| 色狠狠一区二区| 精灵使的剑舞无删减版在线观看| 日产精品久久久一区二区| 国产成a人无v码亚洲福利| 伊人久久一区二区| 欧美亚洲成人xxx| 欧美日韩一区自拍| 老司机福利在线观看|