我正在android的系外播放器库中构建一个视频播放器。我无法在所有设备上播放h265视频。当我使用另一个媒体播放器,例如MX播放器时,我可以在相同的设备上播放相同的媒体。下面是用Kotlin编写的初始化播放器的代码。
val trackSelector = DefaultTrackSelector(this)
trackSelector.parameters = DefaultTrackSelector.ParametersBuilder(this)
.setRendererDisabled(C.TRACK_TYPE_VIDEO, false)
.build()
val dataSourceFactory: DataSource.Factory = DefaultDataSource.Factory(this)
prepareMediaItems(hashMap)
val extractorsFactory = DefaultExtractorsFactory()
.setTsExtractorFlags(DefaultTsPayloadReaderFactory.FLAG_ALLOW_NON_IDR_KEYFRAMES)
val renderersFactory: RenderersFactory = DefaultRenderersFactory(this)
.setExtensionRendererMode( if (isHardwareDecodingEnabled) DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON else DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER)
player = ExoPlayer.Builder(this, renderersFactory)
.setMediaSourceFactory(DefaultMediaSourceFactory(dataSourceFactory, extractorsFactory))
.setTrackSelector(trackSelector)
.build()
该视频试图通过加载第一个帧来播放视频,然后继续加载。这是我在Logcat中遇到的错误:
E/ACodec: [OMX.google.hevc.decoder] setPortMode on output to DynamicANWBuffer failed w/ err -1010
I/ACodec: codec does not support config priority (err -1010)
发布于 2022-05-23 16:26:02
据我所知,如果不在应用程序中嵌入一些解码库,所有的H265视频都无法在所有设备(包括较早版本的安卓)上工作。使用(例如) H264基线编码重新编码你的视频,如果这是一种选择的话,它可以工作吗?
https://stackoverflow.com/questions/72346472
复制相似问题