在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

詳解Media3 1.5.0的新功能

谷歌開發(fā)者 ? 來源:Android 開發(fā)者 ? 2025-02-26 10:43 ? 次閱讀

作者 / 工程經(jīng)理 Kristina Simakova

Media3 1.5.0 已推出

Transformer 現(xiàn)在支持動態(tài)照片和更快的圖像編碼。我們還簡化了 DefaultPreloadManager和 ExoPlayer 的設置,使其更加易于使用。不止如此,我們添加了一個新的 IAMF 解碼器、一個 Kotlin 監(jiān)聽器擴展程序,并通過委托實現(xiàn)了更簡單的播放器優(yōu)化。 如要詳細了解有關所有新 API 和錯誤修復的信息,歡迎您查看完整的版本說明: https://github.com/androidx/media/releases/tag/1.5.0

Transformer 優(yōu)化

動態(tài)照片支持

Transformer 現(xiàn)在支持導出動態(tài)照片。如果設置了相應的 MediaItem 圖像持續(xù)時間,則會導出動態(tài)照片的圖像 (請參閱 MediaItem.Builder().setImageDurationMs()),否則,將導出動態(tài)照片的視頻。請注意,無論哪種情況下,都不應設置 EditedMediaItem 的持續(xù)時間,因為系統(tǒng)會自動調(diào)整為相應的 MediaItem 的圖像持續(xù)時間。

更快的圖像編碼

此版本通過對 DefaultVideoFrameProcessor.queueInputBitmap()的優(yōu)化,提升了圖像到視頻的編碼速度。DefaultVideoFrameProcessor 現(xiàn)在將提供給 queueInputBitmap() 的 Bitmap 視為不可變對象。GL 管道將僅對輸入 Bitmap 進行一次重采樣和顏色轉換。因此,將大型 (例如 1200 萬像素) 圖像作為輸入的 Transformer 操作執(zhí)行速度更快。

AudioEncoderSettings

與 VideoEncoderSettings 類似,Transformer 現(xiàn)在支持 AudioEncoderSettings,可用于設置所需的編碼配置文件和比特率。

編輯列表支持

Transformer 現(xiàn)在會將第一個視頻幀轉換為從 0 開始。這修復了在某些包含編輯列表的文件中出現(xiàn)的音視頻同步問題。

不支持的軌道類型日志記錄

此版本包括改進了不支持的軌道類型的日志記錄,可為問題排查和調(diào)試提供更詳細的信息。

Media3 Muxer

在之前的某個版本中,我們添加了一個新的 Muxer 庫,可用于創(chuàng)建 MP4 容器文件。Media3 Muxer 支持多種音頻和視頻編解碼器,可順暢處理各種媒體格式。此外,這個新庫還具備一些高級功能,包括:

B-frame 支持

碎片化的 MP4 輸出

編輯列表支持

Muxer 庫 https://github.com/androidx/media/tree/release/libraries/muxer

Muxer 庫可以作為 gradle 依賴項包含在內(nèi):

implementation ("androidx.media3:media3-muxer:1.5.0")

Media3 Muxer 與 Transformer

如要將 Media3 Muxer 與 Transformer 一起使用,請在創(chuàng)建 Transformer 時將 InAppMuxer.Factory (其內(nèi)部封裝了 Media3 Muxer) 設置為 Muxer factory:

val transformer = Transformer.Builder(context)
    .setMuxerFactory(InAppMuxer.Factory.Builder().build())
    .build()

簡化 DefaultPreloadManager 和 ExoPlayer 的設置

在 Media3 1.5.0 中,我們增加了 DefaultPreloadManager.Builder,可使您更加容易地構建預加載組件和播放器。此前,我們要求您先實例化多個必要組件 (如 RenderersFactory、TrackSelectorFactory、LoadControl、BandwidthMeter 和預加載/播放 Looper),并在將這些組件注入 DefaultPreloadManager 構造函數(shù)和 ExoPlayer.Builder 時,十分謹慎地正確共享這些組件。通過使用新的 DefaultPreloadManager.Builder,這個過程變得簡單多了:

使用所有默認組件構建 DefaultPreloadManager 和 ExoPlayer 實例。

val preloadManagerBuilder = DefaultPreloadManager.Builder()
val preloadManager = preloadManagerBuilder.build()
val player = preloadManagerBuilder.buildExoPlayer()

使用自定義共享組件構建 DefaultPreloadManager 和 ExoPlayer 實例。

val preloadManagerBuilder = DefaultPreloadManager.Builder().setRenderersFactory(customRenderersFactory)
// The resulting preloadManager uses customRenderersFactory
val preloadManager = preloadManagerBuilder.build()
// The resulting player uses customRenderersFactory
val player = preloadManagerBuilder.buildExoPlayer()

構建 DefaultPreloadManager 和 ExoPlayer 實例,并在 ExoPlayer 上設置自定義的僅播放配置。

valpreloadManagerBuilder=DefaultPreloadManager.Builder()
val preloadManager = preloadManagerBuilder.build()
// Tune the playback-only configurations
val playerBuilder = ExoPlayer.Builder().setFooEnabled()
// The resulting player will have playback feature "Foo" enabled
valplayer=preloadManagerBuilder.buildExoPlayer(playerBuilder)

預加載下個播放列表項目

我們在 ExoPlayer 中增加了預加載下個播放列表項目功能。默認情況下,播放列表預加載功能處于禁用狀態(tài),但可以通過設定預加載到內(nèi)存的持續(xù)時間來啟用該功能:

player.preloadConfiguration=
PreloadConfiguration(/*targetPreloadDurationUs=*/5_000_000L)
通過使用上述 PreloadConfiguration,播放器嘗試為播放列表中的下一個項目預加載五秒鐘的媒體內(nèi)容。僅當系統(tǒng)沒有加載當前播放所需的媒體時,預加載功能才會啟動。這樣可以避免預加載占用主要播放內(nèi)容的帶寬。 啟用預加載功能后,當用戶跳轉到下一個項目,而播放緩沖區(qū)尚未到達下一個項目時,預加載可以幫助充分縮短銜接延遲。通過將視頻、音頻和文本樣本預加載到樣本隊列,這項功能可以將下個播放項目的開頭內(nèi)容準備就緒。預加載的時間段隨后會被排隊到播放器中,預加載的樣本立即可用并隨時可供編解碼器進行渲染。 選擇啟用后,可以通過使用 PreloadConfiguration.DEFAULT 再次關閉播放列表預加載功能,以停用播放列表預加載:
player.preloadConfiguration = PreloadConfiguration.DEFAULT

新 IAMF 解碼器和

Kotlin 監(jiān)聽器擴展程序

1.5.0 版本包含一個新的 media3-decoder-iamf 模塊,該模塊支持以 MP4 文件形式播放 IAMF 沉浸式音頻軌道。如果應用想要試用此功能,則需在本地構建 libiamf 解碼器。您可以參閱 Media3 自述文件了解完整說明。

implementation ("androidx.media3:media3-decoder-iamf:1.5.0")

IAMF https://aomediacodec.github.io/iamf/

Media3 自述文件 https://github.com/androidx/media/blob/release/libraries/decoder_iamf/README.md

此版本還包含一個新的 media3-common-ktx 模塊,這是用于 Kotlin 特定功能的模塊。此模塊的第一個版本包含一個掛起函數(shù),可以讓調(diào)用方監(jiān)聽 Player.Listener.onEvents。media3-ui-compose 模塊 (已隨 Media3 1.6.0 一起推出) 使用此構建模塊來支持 Jetpack Compose 播放界面。

implementation("androidx.media3:media3-common-ktx:1.5.0")
?

通過委托輕松定制播放器

Media3 自 1.0.0 版以來,提供了 ForwardingPlayer 實現(xiàn),我們之前曾建議,當應用想要通過使用裝飾器模式自定義 Player 的運作方式時,應該使用這個實現(xiàn)。一個非常常見的用例是允許或禁止某些播放器命令 (以便在界面中顯示/隱藏某些按鈕)。遺憾的是,使用 ForwardingPlayer 正確執(zhí)行此操作非常困難且容易出錯,因為必須一致地重寫多個方法,并處理監(jiān)聽器。受限于文章篇幅,不在此使用示例代碼說明上述方法的復雜程度,因此我們直接切入重點。

裝飾器模式 https://en.wikipedia.org/wiki/Decorator_pattern

切入重點 https://gist.github.com/icbaker/44e962c6e218ad141880331300308021

為了使此類自定義操作更輕松,1.5.0 版本新增了 ForwardingSimpleBasePlayer,基于 SimpleBasePlayer 提供的一致性保證進行構建,能夠更輕松地根據(jù)裝飾器模式建立一致的播放器實現(xiàn)。現(xiàn)在,可以更加輕松地使用相同的命令修改 Player:

classPlayerWithoutSeekToNext(player:Player):ForwardingSimpleBasePlayer(player){
  override fun getState(): State {
    val state = super.getState()
    return state
      .buildUpon()
      .setAvailableCommands(
        state.availableCommands.buildUpon().remove(COMMAND_SEEK_TO_NEXT).build()
      )
      .build()
  }


  // We don't need to override handleSeek, because it is guaranteed not to be called for
  // COMMAND_SEEK_TO_NEXT since we've marked that command unavailable.
}
?

MediaSession:

媒體項目的命令按鈕

媒體項目的命令按鈕允許會話應用聲明某些媒體項目支持的命令,這些命令可以通過 MediaController 或 MediaBrowser 方便地顯示和執(zhí)行。

△ 屏幕截圖:Android Automotive OS 媒體中心中媒體項目的命令按鈕。

您可以查閱 Android Developer 官方網(wǎng)站,了解詳細內(nèi)容。 這是 Media3 中等效于舊版 "自定義瀏覽操作" API 的功能,Media3 可以與其完全互操作。與舊版 API 不同,媒體項目的命令按鈕不需要MediaLibraryService,而是 Media3 MediaSession 的一項功能。因此,這些按鈕能夠以相同的方式供 MediaController 和 MediaBrowser 使用。 如果您遇到任何問題,有功能請求或想要分享反饋,請使用 GitHub 上的 Media3 問題跟蹤頁告訴我們。我們期待收到您的消息!

GitHub 上的 Media3 問題跟蹤頁 https://github.com/androidx/media/issues

這篇文章是我們 "相機與媒體 Spotlight Week"系列的內(nèi)容之一。在此系列中,我們會提供包括文章、視頻、示例代碼等資源,以幫助您提升應用中的媒體體驗。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 解碼器
    +關注

    關注

    9

    文章

    1161

    瀏覽量

    41554
  • 圖像
    +關注

    關注

    2

    文章

    1091

    瀏覽量

    40902
  • Transformer
    +關注

    關注

    0

    文章

    148

    瀏覽量

    6319

原文標題:一文掌握 Media3 1.5.0 的新功能

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Cadence_16.5的新功能

    ALLEGRO16.6的新功能,希望對你有用。
    發(fā)表于 11-15 10:19

    Cadence/OrCAD PSpice 16.6新功能介紹

    介紹了版本16.6的新功能。主要有:learning pspice等
    發(fā)表于 07-02 11:33

    諾基亞N78下新功能

    N78終于入手 SHOW下新功能
    發(fā)表于 05-05 14:32

    Cadence Allegro 17.4新功能

    Cadence Allegro 17.4新功能
    發(fā)表于 10-28 21:19

    AWTK Designer 1.0.2有哪些新功能

    為不斷提升用戶體驗,本次Designer 1.0.2增加了自定義控件和插件管理以及其他許多新功能,并對現(xiàn)有功能進行了優(yōu)化,讓我們一起來看看這些很酷的新功能吧!
    發(fā)表于 03-04 08:27

    STM32CubeIDE1.5.0 附帶的“FreeRTOS? 調(diào)試支持”功能中包含的內(nèi)容是什么?

    直到現(xiàn)在,我一直在使用 NXP FreeRTOS TAD 和 WHIS StateViewer,我注意到 STM32CubeIDE 1.5.0 添加了一項新功能,即添加了 FreeRTOS? 調(diào)試
    發(fā)表于 01-12 07:41

    Linux備份方案 rdiff-backup 為Python 3提供了多種新功能

    這個老牌 Linux 備份方案遷移到了 Python 3 提供了添加許多新功能的機會。
    的頭像 發(fā)表于 10-08 14:39 ?2195次閱讀

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    發(fā)表于 05-27 09:38 ?2次下載
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    發(fā)表于 05-27 11:46 ?0次下載
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    發(fā)表于 05-27 12:26 ?0次下載
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    發(fā)表于 05-27 12:28 ?0次下載
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    發(fā)表于 05-27 12:52 ?2次下載
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    發(fā)表于 05-27 13:18 ?1次下載
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    鴻蒙系統(tǒng)有什么新功能

    。 鴻蒙系統(tǒng)有什么新功能? 1、鴻蒙系統(tǒng)能夠實現(xiàn)跨終端無縫協(xié)同體驗。 2.確定時延引擎和高性能IPC技術實現(xiàn)系統(tǒng)天生流暢。 3.鴻蒙系統(tǒng)使用了全新的微內(nèi)核設計,安全性能更強。 4.能夠在多臺設備互傳文件。 5.切換多個軟件時,軟
    的頭像 發(fā)表于 07-06 16:22 ?7924次閱讀

    GUI Guider v1.5.0正式發(fā)布!它為嵌入式圖形開發(fā)又帶來哪些新功能,一起來探索吧~

    的高性能圖形用戶界面。 目前,這款嵌入式圖形開發(fā)工具發(fā)布了最新的版本GUI Guider v1.5.0,能夠為開發(fā)者帶來諸多好處,包括: 提供更友好的使用體驗 提高圖形應用開發(fā)效率 支持更多功能和開發(fā)板 性能改進和穩(wěn)定性增強 下載GUI Guider v
    的頭像 發(fā)表于 02-24 08:10 ?3599次閱讀
    主站蜘蛛池模板: 亚洲理论片在线观看 | 黄色国产在线视频 | 国产裸露片段精华合集链接 | 五月花亚洲| 嗯好舒服好爽好快好大 | 欧美性天堂 | 黄色视屏免费看 | 啪啪激情综合 | 免费h视频在线观看 | 黄色福利视频网站 | 国产私密 | 亚洲成年网站 | 欧美zooz人禽交免费 | 久久国产精品免费网站 | 亚洲香蕉视频 | 色网站在线观看 | 久久综合97色综合网 | 久久全国免费久久青青小草 | 视频在线播放免费 | 天天澡天天干 | 欧美成人亚洲 | 精品久久久久久 | 福利视频一区二区三区 | 欧美精品1| 国产又大又黄又粗又爽 | 又色又爽视频 | 1515hh四虎免费观com | 黄h视频| 明星三级国产免费播放 | 免费观看黄色网页 | 天堂色网| 午夜精品久久久久久影视riav | 天天做天天爱天天做天天吃中 | 人日人操 | 波多野结衣50连精喷在线 | 国产性大片黄在线观看在线放 | 日本亚洲欧美国产日韩ay高清 | 麻豆国产一区二区在线观看 | 色欧美在线视频 | 深夜在线视频免费网址 | 亚洲精品成人久久久影院 |