chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

詳解Media3 1.5.0的新功能

谷歌開(kāi)發(fā)者 ? 來(lái)源:Android 開(kāi)發(fā)者 ? 2025-02-26 10:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

Media3 1.5.0 已推出

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

Transformer 優(yōu)化

動(dòng)態(tài)照片支持

Transformer 現(xiàn)在支持導(dǎo)出動(dòng)態(tài)照片。如果設(shè)置了相應(yīng)的 MediaItem 圖像持續(xù)時(shí)間,則會(huì)導(dǎo)出動(dòng)態(tài)照片的圖像 (請(qǐng)參閱 MediaItem.Builder().setImageDurationMs()),否則,將導(dǎo)出動(dòng)態(tài)照片的視頻。請(qǐng)注意,無(wú)論哪種情況下,都不應(yīng)設(shè)置 EditedMediaItem 的持續(xù)時(shí)間,因?yàn)橄到y(tǒng)會(huì)自動(dòng)調(diào)整為相應(yīng)的 MediaItem 的圖像持續(xù)時(shí)間。

更快的圖像編碼

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

AudioEncoderSettings

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

編輯列表支持

Transformer 現(xiàn)在會(huì)將第一個(gè)視頻幀轉(zhuǎn)換為從 0 開(kāi)始。這修復(fù)了在某些包含編輯列表的文件中出現(xiàn)的音視頻同步問(wèn)題。

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

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

Media3 Muxer

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

B-frame 支持

碎片化的 MP4 輸出

編輯列表支持

Muxer 庫(kù) https://github.com/androidx/media/tree/release/libraries/muxer

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

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

Media3 Muxer 與 Transformer

如要將 Media3 Muxer 與 Transformer 一起使用,請(qǐng)?jiān)趧?chuàng)建 Transformer 時(shí)將 InAppMuxer.Factory (其內(nèi)部封裝了 Media3 Muxer) 設(shè)置為 Muxer factory:

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

簡(jiǎn)化 DefaultPreloadManager 和 ExoPlayer 的設(shè)置

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

使用所有默認(rèn)組件構(gòu)建 DefaultPreloadManager 和 ExoPlayer 實(shí)例。

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

使用自定義共享組件構(gòu)建 DefaultPreloadManager 和 ExoPlayer 實(shí)例。

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

構(gòu)建 DefaultPreloadManager 和 ExoPlayer 實(shí)例,并在 ExoPlayer 上設(shè)置自定義的僅播放配置。

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)

預(yù)加載下個(gè)播放列表項(xiàng)目

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

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

新 IAMF 解碼器和

Kotlin 監(jiān)聽(tīng)器擴(kuò)展程序

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

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

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

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

通過(guò)委托輕松定制播放器

Media3 自 1.0.0 版以來(lái),提供了 ForwardingPlayer 實(shí)現(xiàn),我們之前曾建議,當(dāng)應(yīng)用想要通過(guò)使用裝飾器模式自定義 Player 的運(yùn)作方式時(shí),應(yīng)該使用這個(gè)實(shí)現(xiàn)。一個(gè)非常常見(jiàn)的用例是允許或禁止某些播放器命令 (以便在界面中顯示/隱藏某些按鈕)。遺憾的是,使用 ForwardingPlayer 正確執(zhí)行此操作非常困難且容易出錯(cuò),因?yàn)楸仨氁恢碌刂貙?xiě)多個(gè)方法,并處理監(jiān)聽(tīng)器。受限于文章篇幅,不在此使用示例代碼說(shuō)明上述方法的復(fù)雜程度,因此我們直接切入重點(diǎn)。

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

切入重點(diǎn) https://gist.github.com/icbaker/44e962c6e218ad141880331300308021

為了使此類自定義操作更輕松,1.5.0 版本新增了 ForwardingSimpleBasePlayer,基于 SimpleBasePlayer 提供的一致性保證進(jìn)行構(gòu)建,能夠更輕松地根據(jù)裝飾器模式建立一致的播放器實(shí)現(xiàn)?,F(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:

媒體項(xiàng)目的命令按鈕

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

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

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

GitHub 上的 Media3 問(wèn)題跟蹤頁(yè) https://github.com/androidx/media/issues

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

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

    關(guān)注

    9

    文章

    1176

    瀏覽量

    41990
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1094

    瀏覽量

    41266
  • Transformer
    +關(guān)注

    關(guān)注

    0

    文章

    151

    瀏覽量

    6520

原文標(biāo)題:一文掌握 Media3 1.5.0 的新功能

文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Cadence_16.5的新功能

    ALLEGRO16.6的新功能,希望對(duì)你有用。
    發(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有哪些新功能

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

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

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

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

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

    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)能夠?qū)崿F(xiàn)跨終端無(wú)縫協(xié)同體驗(yàn)。 2.確定時(shí)延引擎和高性能IPC技術(shù)實(shí)現(xiàn)系統(tǒng)天生流暢。 3.鴻蒙系統(tǒng)使用了全新的微內(nèi)核設(shè)計(jì),安全性能更強(qiáng)。 4.能夠在多臺(tái)設(shè)備互傳文件。 5.切換多個(gè)軟件時(shí),軟
    的頭像 發(fā)表于 07-06 16:22 ?8376次閱讀

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

    的高性能圖形用戶界面。 目前,這款嵌入式圖形開(kāi)發(fā)工具發(fā)布了最新的版本GUI Guider v1.5.0,能夠?yàn)殚_(kāi)發(fā)者帶來(lái)諸多好處,包括: 提供更友好的使用體驗(yàn) 提高圖形應(yīng)用開(kāi)發(fā)效率 支持更多功能和開(kāi)發(fā)板 性能改進(jìn)和穩(wěn)定性增強(qiáng) 下載GUI Guider v
    的頭像 發(fā)表于 02-24 08:10 ?3864次閱讀