国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

App增加倍速視頻的坎坷之路

Integ / 2412人閱讀

摘要:為了增加倍速功能,并保持系統版本兼容,一開始選擇的是集成播放器的方案。版本后,增加了倍速播放功能,但本身結構比較龐大,集成難度較高,增加了后續維護的難度,在使用一段時間后,開始考慮給端更換另外一種倍速方案。

課程視頻越來越長,學習時間越來越少。面對這些場景,很多視頻播放的App都增加了倍速功能,可以開啟0.5x、1.5x甚至2.0x等倍速,用于增強播放功能。 iOS系統播放內核的強大,很輕松的應付了產品經理提出的這個需求,但是面對市場上數不清的Android系統版本和設備,這讓Android客戶端增加倍速功能,無疑又新添了一道門坎。

? ? ? ? 為了增加倍速功能,并保持系統版本兼容,一開始選擇的是集成vlc播放器的方案。vlc 2.x版本后,增加了倍速播放功能,但vlc本身結構比較龐大,集成難度較高,增加了后續維護的難度,在使用一段時間后,開始考慮給Android端更換另外一種倍速方案。

? ? ? ? 這次是集成Google ExoPlayer的播放器,ExoPlayer本身在Android 6.0系統及以上,支持系統級別的倍速播放功能,能更好的利用設備硬件功能。ExoPlayer本身出自Google之手,是官方推薦的播放器,對Android系統兼容較好,并且設計結構簡單易懂,容易擴展。

? ? ? ?但是遺憾在6.0以下就不支持倍速設置。得益于ExoPlayer可擴展性很強,支持對視頻、音頻等渲染器做擴展,通過改變默認音頻渲染器的音頻輸出,可以加快音頻流的速度,在ExoPlayer中,保持音視頻同步,一般是視頻跟著音頻的速率走,所以我們調整音頻的速率,就同時也改變了視頻。音頻流的速率調整可以通過一個三方庫Sonic(https://github.com/waywardgee...)來改變。

? ? ? ? 當播放器進行構建音頻渲染器的時候,可以根據Android系統版本選擇不同的音頻渲染器。當Android系統是6.0及以上時,我們使用默認的MediaCodecAudioRenderer,6.0以下時,就使用自定義的音頻渲染器SonicMediaCodecAudioTrackRenderer。
? ? ? ?

? ? ? ? SonicMediaCodecAudioTrackRenderer的核心,就是拿到音頻流的buffer,使用Sonic對這段buffer數據流進行速率調整處理,然后把調整后的buffer流送給音頻渲染器,這樣就更改了音頻速率。
? ? ? ?

? ? ? ? SonicMediaCodecAudioTrackRenderer本身也繼承至MediaCodecAudioRenderer類,在onOutputFormatChanged方法里,我們初始化Sonic和一些緩存buffer數組,并配置速率。

? ? ? ? processOutputBuffer方法會在音頻渲染器工作的時候被調用,在這里使用Sonic來改變原始的音頻流buffer數據,并把轉換后的流buffer傳遞給播放器播放。
? ? ? ?

? ? ? ? 在Android 6.0的系統上,我們只要給默認的MediaCodecAudioRenderer渲染器配置PlaybackParams參數就可以實現倍速播放了。
? ? ? ?

? ? ? ? 至此,完成了ExoPlayer對倍速功能的支持,并兼容到了多個Android系統版本。在集成到Android項目中,無論從代碼耦合結構,還是播放器擴展性、易讀性,ExoPlayer無疑比vlc更具優勢。
? ? ? ?
歡迎加入學習交流群569772982,大家一起學習交流。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67746.html

相關文章

  • 移動端快速接入語音播報

    摘要:最近在忙一個小程序藍牙秤的項目,開發環境為小程序,上傳物料的時候需要用到語音播報即將文字轉換為語音,于是開始研究,試了幾個,最終使用騰訊的來完成這個功能。 最近在忙一個小程序藍牙秤的項目,開發環境為php+小程序,上傳物料的時候需要用到語音播報(即將文字轉換為語音),于是開始研究,試了幾個,最終使用騰訊AI的API來完成這個功能。官網上(http://ai.qq.com/)也有相應教程...

    elarity 評論0 收藏0
  • 阿里云AI如何助攻世界杯?視頻集錦背后技術實踐

    摘要:可預見的未來激情賽事已經過半,阿里云視頻技術在本次世界杯中也成功落地,而這并不是結局,這是將視頻應用于體育行業以及更多其他行業的開端。 本屆世界杯互聯網直播的順利進行,離不開各大云計算廠商的支持。在這其中,阿里云是當之無愧的C位,除了優酷外,阿里云還支撐了CNTV、CCTV5客戶端,為全網70%的世界杯直播流量保駕護航。 對于世界杯這種超大觀看量級、超強影響力的重要體育賽事,阿里云一直...

    BothEyes1993 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<