精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美国产国产综合| 婷婷亚洲五月色综合| 欧美日韩精品在线| 日韩精品久久一区二区三区| 国产又黄又大又粗的视频| 亚洲综合五月| 日韩成人中文字幕在线观看| 91香蕉视频污版| 色爱综合区网| 国产色婷婷亚洲99精品小说| 亚洲在线免费观看| 成人午夜视频在线播放| 欧美独立站高清久久| 精品国产91久久久久久久妲己| 99久久国产宗和精品1上映| 国产在线观看91| 久久久久久久性| 91精品国产综合久久久久久丝袜| 中文字幕超碰在线| 性xxxx欧美老肥妇牲乱| 亚洲美女激情视频| 国产大学生av| 国外成人福利视频| 狠狠色狠狠色综合日日五| 国产卡一卡二在线| 国产私拍精品| 91女神在线视频| 高清av免费一区中文字幕| 中文文字幕一区二区三三| 亚洲精品1区| 久久福利视频导航| 国产精品视频在| 亚洲区小说区图片区qvod按摩| 日韩欧美在线1卡| 人人干人人干人人| av有声小说一区二区三区| 亚洲国产精品久久久男人的天堂| 亚洲一区尤物| 国产精品久久久久一区二区国产| 99精品欧美一区二区蜜桃免费| 147欧美人体大胆444| 中文字幕一区二区人妻痴汉电车 | 国产一区二区三区在线观看免费| 日本免费久久高清视频| 国产又爽又黄的视频| 精品二区视频| 欧美激情日韩图片| 免费三级在线观看| 久久激情电影| 色久欧美在线视频观看| 国产精品久久久视频| 国产欧美日韩视频在线| 亚洲老头同性xxxxx| 插吧插吧综合网| 伊甸园亚洲一区| 亚洲欧美日韩久久久久久| 少妇大叫太粗太大爽一区二区| 欧美日韩一本| 日韩激情在线视频| 国产精品九九九九九| 亚洲免费观看高清完整版在线观| 精品伊人久久97| 国产真实乱人偷精品人妻| 曰本一区二区三区视频| 亚洲人成在线观看网站高清| 成人午夜福利一区二区| 国产一区日韩| 日韩网站免费观看| 日韩在线不卡av| 午夜精品网站| 97视频国产在线| 日本老师69xxx| 国产精品18在线| 婷婷综合激情| 久久久久久久999| 日产亚洲一区二区三区| 免费看黄裸体一级大秀欧美| 国产经典一区二区| 亚洲一级视频在线观看| 国产老妇另类xxxxx| 国产高清精品一区二区| 全色精品综合影院| 国产精品美女久久久久aⅴ| 三年中文高清在线观看第6集| 97caopron在线视频| 亚洲午夜激情网站| 国产精品亚洲a| 永久免费观看精品视频| 亚洲成人a**站| 中文字幕人妻一区二区三区在线视频| 亚洲精品国产偷自在线观看| 久久免费精品视频| 中文字幕 欧美激情| 国内成人免费视频| 蜜桃传媒视频麻豆第一区免费观看| 成人午夜影视| 亚洲国产成人av| 黄色av网址在线播放| 国产精品66| 日韩美女视频在线| 中文字幕在线观看免费高清| 欧美色综合网| 国产精品高清网站| 丰满熟女一区二区三区| 国产日韩欧美一区二区三区综合| av不卡在线免费观看| 特黄毛片在线观看| 7777精品伊人久久久大香线蕉的 | 福利视频一区二区| 天天爽夜夜爽一区二区三区 | 欧美一区二区三区精美影视| 国产午夜精品久久久久免费视| 欧美日韩国产丝袜另类| 91丝袜超薄交口足| 深夜福利久久| 午夜精品久久久久久久99热浪潮| 91精品中文字幕| 99在线热播精品免费| 熟妇熟女乱妇乱女网站| 影视一区二区三区| 亚洲精品在线三区| 久久r这里只有精品| 美女视频一区在线观看| 久久久久久久久久码影片| 欧美24videosex性欧美| 欧美日韩日日夜夜| 99久久精品免费视频| 99在线精品免费视频九九视| 99re在线国产| 暖暖日本在线观看| 日本乱码高清不卡字幕| 中文字幕一区二区人妻电影丶| 亚洲激情五月| 国产欧美日韩亚洲精品| av在线三区| 在线视频中文字幕一区二区| 成人乱码一区二区三区av| 亚洲经典在线| 国产精品久久久久毛片软件| 亚洲最新中文字幕| 中文字幕精品三级久久久| av亚洲精华国产精华精华 | 搞黄网站在线观看| 欧美精品三级在线观看| 国产馆在线观看| 日本成人超碰在线观看| 日本在线观看一区二区| 九九热线视频只有这里最精品| 亚洲激情小视频| 日本系列第一页| 成人h动漫精品一区二区| 国产aaa免费视频| 成人午夜网址| 久久久爽爽爽美女图片| 人人妻人人澡人人爽久久av| 五月天欧美精品| 中文字幕在线永久| 久久aⅴ国产紧身牛仔裤| 欧美一区2区三区4区公司二百| 欧美a级在线观看| 精品亚洲国产视频| 日韩黄色一级视频| 欧美国产精品v| 欧美精品久久99久久在免费线| 亚洲天堂一区二区在线观看| 91精品国产调教在线观看| 亚洲综合日韩中文字幕v在线| dy888亚洲精品一区二区三区| 日韩午夜激情av| 在线看成人av| 91免费观看视频在线| 激情网站五月天| 久久中文亚洲字幕| 成人黄色片视频网站| 国产精品原创| 揄拍成人国产精品视频| 国产精品国产一区二区三区四区| 一区二区激情小说| 国产chinese中国hdxxxx| 奶水喷射视频一区| 亚洲在线视频一区二区| 一区二区三区免费在线看| 97涩涩爰在线观看亚洲| 瑟瑟视频在线| 精品日韩成人av| 无码人妻久久一区二区三区不卡| 亚洲欧洲日产国产综合网| 佐佐木明希电影| 天堂av在线一区| 国产欧美综合一区| 日韩福利视频一区| 国产精品一二三视频| 好吊日av在线| 伊人男人综合视频网| 精品国产亚洲一区二区麻豆| 狠狠躁夜夜躁人人躁婷婷91| 潘金莲一级黄色片| 99久久免费精品| 亚洲综合20p| 午夜亚洲精品| 欧美日韩激情四射| 日韩成人a**站| 精品亚洲第一| 精品一区二区三区亚洲| 日本高清不卡的在线| av网址在线播放| 亚洲午夜小视频| 俄罗斯嫩小性bbwbbw| 欧洲亚洲精品在线| 日本中文字幕网| 亚洲欧美一区二区三区国产精品| 欧美老熟妇乱大交xxxxx| 国产成人a级片| 中文字幕 91| 蘑菇福利视频一区播放| 黄色一级视频在线播放| 亚洲男女av一区二区| 日本免费高清一区二区| 欧美综合自拍| 成人18视频| 欧美经典影片视频网站| 国产精品直播网红| 中文字幕在线直播| 欧美精品video| 国内精品不卡| 日韩中文字幕网站| 国产69久久| 亚洲美女视频网| 污污视频在线免费看| 日韩欧美亚洲一区二区| 夜夜嗨av禁果av粉嫩avhd| 日韩欧美极品在线观看| 日韩精品成人一区| 一区二区三区不卡视频| 日本黄色片免费观看| 国产免费成人在线视频| 国产毛片久久久久久久| 91麻豆6部合集magnet| 日韩精品视频一区二区| 成人午夜视频福利| av在线天堂网| 成人免费av在线| 亚洲女则毛耸耸bbw| 国产成人av电影在线观看| 亚洲AV无码久久精品国产一区| 精品一区二区三区不卡| 日本黄色福利视频| 久久精品国产亚洲aⅴ| 一本色道久久亚洲综合精品蜜桃 | 曰本三级日本三级日本三级| 精品一区二区三区欧美| 天天av天天操| 国产成人av在线影院| 怡红院一区二区| av电影天堂一区二区在线| 精品久久久久一区二区| 91网址在线看| av网在线播放| 中文一区二区在线观看| 天堂网中文在线观看| 自拍av一区二区三区| avtt天堂在线| 亚洲高清免费观看 | 国产精品入口66mio| 成人av一级片| 秋霞电影网一区二区| 在线a免费观看| 国产aⅴ精品一区二区三区色成熟| 久草免费资源站| 久久午夜羞羞影院免费观看| 亚洲色图第四色| 亚洲卡通动漫在线| 国产精品黄色网| 一本到不卡免费一区二区| 中文字幕一区2区3区| 亚洲毛片播放| 91国内在线视频| 国产伦理精品| 国产精品久久久久久久av大片| 亚洲日韩中文字幕一区| 99视频日韩| 深夜福利久久| 色一情一乱一乱一区91| 一区二区三区国产盗摄| wwwwxxxx日韩| 高清国产一区二区| 色综合99久久久无码国产精品| 亚洲同性同志一二三专区| 中国一级特黄毛片| 欧美久久久一区| 深夜福利视频网站| 正在播放亚洲1区| 91白丝在线| 成人精品久久一区二区三区| 久久视频在线观看| 一区二区三区在线观看www| 一区二区精品| a级大片免费看| 久久久久九九视频| 久久久久亚洲av片无码下载蜜桃| 欧美在线啊v一区| 乱精品一区字幕二区| 日韩在线观看视频免费| 在线视频cao| 国产99在线播放| 日韩中文欧美| 无码粉嫩虎白一线天在线观看| 免费精品99久久国产综合精品| 香蕉视频污视频| 亚洲日本va午夜在线影院| 亚洲第一网站在线观看| 亚洲国产精品嫩草影院久久| 麻豆av在线免费看| 国产精品99久久久久久www| 高清欧美性猛交xxxx黑人猛| 在线观看亚洲视频啊啊啊啊| 久久综合影音| 国产精品一区二区入口九绯色| 亚洲精品亚洲人成人网| 中文字幕在线2018| 亚洲美女在线看| 草草在线视频| 国产福利不卡| 欧美网站在线| 能看毛片的网站| 国产精品伦一区二区三级视频| 天堂а√在线中文在线新版 | 自拍视频在线网| 欧洲精品毛片网站| 啪啪激情综合网| 欧美精品久久久久久久免费| 国产ts人妖一区二区| 波多野结衣在线网址| 欧美日韩国产美| 国产www.大片在线| 国产精品久久二区| 国产精品片aa在线观看| 日本一本二本在线观看| 91视频国产资源| 黄色av网站免费观看| 亚洲欧美日韩国产中文| 蜜桃视频成人m3u8| 日韩经典在线视频| 日韩成人免费电影| 粉嫩精品久久99综合一区| 欧美午夜在线一二页| 色的视频在线免费看| 国产欧美在线看| 66国产精品| 性折磨bdsm欧美激情另类| 一个色在线综合| 天天操天天操天天| 日韩av片免费在线观看| 国产精品一区高清| 美女网站免费观看视频| 中文字幕乱码日本亚洲一区二区| 在线观看免费观看在线| 久久视频国产精品免费视频在线| 成人免费91| 国产91视频一区| a亚洲天堂av| www.com亚洲| 久久久国产精品视频| 日韩一二三区在线观看| 国产中文字幕乱人伦在线观看| av电影在线观看完整版一区二区| 在线观看日本视频| 中文字幕欧美日韩| 日韩视频1区| 白嫩少妇丰满一区二区| 国产精品国产三级国产aⅴ原创| 国产情侣av在线| 国内精品久久久久久久| 国产一区二区三区天码| 中文字幕第22页| 午夜激情一区二区三区| 国产有码在线| 亚洲自拍在线观看| aⅴ色国产欧美| av免费播放网站| 欧美一区二区美女| 一区二区三区电影大全| 亚洲精品成人自拍| 丰满放荡岳乱妇91ww| www.国产一区二区| 久久久久北条麻妃免费看| 高清精品视频| 国产 porn| 亚洲国产精品麻豆| eeuss影院www在线播放| 91免费看网站| 久久久www| 青娱乐国产在线视频| 国产亚洲一区二区精品| 66精品视频在线观看| 无码无遮挡又大又爽又黄的视频| 日韩毛片视频在线看| 日韩亚洲视频在线观看| 92裸体在线视频网站| 久久久久久一区二区|