女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

詳解Media3 1.5.0的新功能

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

作者 / 工程經理 Kristina Simakova

Media3 1.5.0 已推出

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

Transformer 優化

動態照片支持

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

更快的圖像編碼

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

AudioEncoderSettings

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

編輯列表支持

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

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

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

Media3 Muxer

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

B-frame 支持

碎片化的 MP4 輸出

編輯列表支持

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

Muxer 庫可以作為 gradle 依賴項包含在內:

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

Media3 Muxer 與 Transformer

如要將 Media3 Muxer 與 Transformer 一起使用,請在創建 Transformer 時將 InAppMuxer.Factory (其內部封裝了 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 構造函數和 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 中增加了預加載下個播放列表項目功能。默認情況下,播放列表預加載功能處于禁用狀態,但可以通過設定預加載到內存的持續時間來啟用該功能:

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

新 IAMF 解碼器和

Kotlin 監聽器擴展程序

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 特定功能的模塊。此模塊的第一個版本包含一個掛起函數,可以讓調用方監聽 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 實現,我們之前曾建議,當應用想要通過使用裝飾器模式自定義 Player 的運作方式時,應該使用這個實現。一個非常常見的用例是允許或禁止某些播放器命令 (以便在界面中顯示/隱藏某些按鈕)。遺憾的是,使用 ForwardingPlayer 正確執行此操作非常困難且容易出錯,因為必須一致地重寫多個方法,并處理監聽器。受限于文章篇幅,不在此使用示例代碼說明上述方法的復雜程度,因此我們直接切入重點。

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

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

為了使此類自定義操作更輕松,1.5.0 版本新增了 ForwardingSimpleBasePlayer,基于 SimpleBasePlayer 提供的一致性保證進行構建,能夠更輕松地根據裝飾器模式建立一致的播放器實現。現在,可以更加輕松地使用相同的命令修改 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 方便地顯示和執行。

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

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

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

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

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

    關注

    9

    文章

    1163

    瀏覽量

    41675
  • 圖像
    +關注

    關注

    2

    文章

    1092

    瀏覽量

    41003
  • Transformer
    +關注

    關注

    0

    文章

    148

    瀏覽量

    6382

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Cadence_16.5的新功能

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

    Cadence/OrCAD PSpice 16.6新功能介紹

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

    諾基亞N78下新功能

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

    Cadence Allegro 17.4新功能

    Cadence Allegro 17.4新功能
    發表于 10-28 21:19

    AWTK Designer 1.0.2有哪些新功能

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

    STM32CubeIDE1.5.0 附帶的“FreeRTOS? 調試支持”功能中包含的內容是什么?

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

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

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

    LTspice IV有什么新功能

    LTspice IV有什么新功能
    發表于 05-27 11:48 ?2次下載
    LTspice IV有什么<b class='flag-5'>新功能</b>?

    LTspice IV有什么新功能

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

    LTspice IV有什么新功能

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

    LTspice IV有什么新功能

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

    LTspice IV有什么新功能

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

    鴻蒙系統有什么新功能

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

    蘋果13有哪些新功能

    蘋果13有哪些新功能
    的頭像 發表于 09-04 16:54 ?8261次閱讀

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

    的高性能圖形用戶界面。 目前,這款嵌入式圖形開發工具發布了最新的版本GUI Guider v1.5.0,能夠為開發者帶來諸多好處,包括: 提供更友好的使用體驗 提高圖形應用開發效率 支持更多功能和開發板 性能改進和穩定性增強 下載GUI Guider v
    的頭像 發表于 02-24 08:10 ?3680次閱讀