Media3 ExoPlayer 不支持编解码器

问题描述 投票:0回答:1

在我的项目中,我使用 Media3 ExoPlayer 来播放视频。

问题:我想播放的流可能不受支持。

到其他一些流的链接有效。

build.gradle.kts

...
// Media3 ExoPlayer
    implementation("androidx.media3:media3-exoplayer:1.0.1")
    implementation("androidx.media3:media3-exoplayer-dash:1.0.1")
    implementation("androidx.media3:media3-ui:1.0.1")
...

activity_main.xml

...
    <androidx.media3.ui.PlayerView
        android:id="@+id/player"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintDimensionRatio="16:9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
...

创建MediaSource的代码:

...
val mediaSource = DashMediaSource
        .Factory(DefaultHttpDataSource.Factory())
        .createMediaSource(MediaItem.Builder()
            .setUri(url)
            .setMimeType(MimeTypes.APPLICATION_MPD)
            .build())

exoPlayer = ExoPlayer
        .Builder(context)
        .build()
        .apply{
trackSelectionParameters = trackSelectionParameters
                .buildUpon()
                .setMaxVideoSizeSd()
                .build()
            addAnalyticsListener(EventLogger())
            setMediaSource(mediaSource)
            prepare()
}
binding.player.player = exoPlayer
...

在其余的代码中,我没有看到重点,因为播放了其他视频。因此,我应用了来自

manifest.mpd
的有问题的视频编解码器:

<Representation
          id="f3-v1-x3"
          mimeType="video/webm"
          codecs="av01.0.04M.08"
          width="854"
          height="480"
          frameRate="1000/41"
          sar="1:1"
          startWithSAP="1"
          bandwidth="429310">
      </Representation>

我看到了什么

  1. 播放器有音频(由于额外的

    AdaptationSet
    );

  2. 播放器中没有图片。

我怎么想

由于具有不同编解码器的其他视频工作正常,并且根据我的观察,即我查看了

MimeTypes.getVideoMediaMimeType("av01.0.04M.08")
将返回一个空数组,而对于其他一些编解码器,它返回一个非空数组。

我认为该编解码器不受支持。

请告诉我,如果我的假设没有错误,我该如何向 exoPlayer 添加对此编解码器的支持?

kotlin exoplayer android-media3
1个回答
0
投票

av01.0.04M.08

AV1 并且您的设备没有硬件支持。

您可以尝试在本地使用 media3 并提供编程支持。 说明在media3库的github上

还需要配置NDK、CMAKE。关于它写在指令中。

© www.soinside.com 2019 - 2024. All rights reserved.