AndroidX Media 是用于在 Android 上实现媒体用例的库集合,包括本地播放(通过 ExoPlayer)、视频编辑(通过 Transformer)和媒体会话。
您可以在developer.android.com 上找到针对现有ExoPlayer 和MediaSession 用户的迁移指南。
AndroidX Media 版本提供 API 稳定性保证,确保 API 表面对最常用的 API 保持向后兼容。用于更高级用例的 API 被标记为不稳定。要使用不稳定的方法或类而不发出 lint 警告,您需要在使用之前添加 OptIn 注释。有关更多信息,请参阅 UnstableApi 文档。
您可以从 Google Maven 存储库获取这些库。还可以克隆此 GitHub 存储库并在本地依赖模块。
开始使用 AndroidX Media 的最简单方法是在应用程序模块的build.gradle.kts
文件中添加对所需库的 gradle 依赖项。
例如,要依赖具有 DASH 播放支持和 UI 组件的 ExoPlayer,您可以添加对模块的依赖项,如下所示:
implementation( " androidx.media3:media3-exoplayer:1.X.X " )
implementation( " androidx.media3:media3-exoplayer-dash:1.X.X " )
implementation( " androidx.media3:media3-ui:1.X.X " )
或者在 Gradle Groovy DSL build.gradle
中:
implementation ' androidx.media3:media3-exoplayer:1.X.X '
implementation ' androidx.media3:media3-exoplayer-dash:1.X.X '
implementation ' androidx.media3:media3-ui:1.X.X '
其中1.XX
是您的首选版本。所有模块必须是相同版本。
请参阅 AndroidX Media3 Developer.android.com 页面了解更多信息,包括库模块的完整列表。
该存储库包含一些依赖于需要手动构建的外部库的模块,并且无法从 Maven 存储库中获取。请参阅库目录下的各个自述文件以了解更多详细信息。
如果尚未启用,您还需要在依赖于 AndroidX Media 的所有build.gradle.kts
文件中打开 Java 8 支持,方法是将以下内容添加到android
部分:
compileOptions {
targetCompatibility = JavaVersion . VERSION_1_8
}
或者在 Gradle Groovy DSL build.gradle
中:
compileOptions {
targetCompatibility JavaVersion . VERSION_1_8
}
如果您的 Gradle minSdkVersion
为 20 或更低,您应该启用 multidex 以防止构建错误。
使用某些库时需要克隆存储库并在本地依赖模块。如果您想进行本地更改,或者想使用main
分支,这也是一种合适的方法。
首先,将存储库克隆到本地目录中:
git clone https://github.com/androidx/media.git
接下来,将以下内容添加到项目的settings.gradle.kts
文件中,将path/to/media
替换为本地副本的路径:
(gradle as ExtensionAware ).extra[ " androidxMediaModulePrefix " ] = " media3- "
apply (from = file( " path/to/media/core_settings.gradle " ))
或者在 Gradle Groovy DSL settings.gradle
中:
gradle . ext . androidxMediaModulePrefix = ' media3- '
apply from : file( " path/to/media/core_settings.gradle " )
您现在应该看到 AndroidX Media 模块作为项目的一部分出现。您可以像依赖任何其他本地模块一样从build.gradle.kts
依赖它们,例如:
implementation(project( " :media3-lib-exoplayer " ))
implementation(project( " :media3-lib-exoplayer-dash " ))
implementation(project( " :media3-lib-ui " ))
或者在 Gradle Groovy DSL build.gradle
中:
implementation project( ' :media3-lib-exoplayer ' )
implementation project( ' :media3-lib-exoplayer-dash ' )
implementation project( ' :media3-lib-ui ' )
默认情况下,MIDI 模块作为本地依赖项被禁用,因为它需要额外的 Maven 存储库配置。如果您想将其用作本地依赖项,请按照模块自述文件中的说明配置 JitPack 存储库,然后在settings.gradle.kts
文件中启用构建模块:
gradle.extra. apply {
set( " androidxMediaEnableMidiModule " , true )
}
或者在 Gradle Groovy DSL settings.gradle
中:
gradle . ext . androidxMediaEnableMidiModule = true
开发工作发生在main
分支上。通常应向该分支发出拉取请求。
release
分支包含最新的稳定版本。
要使用 Android Studio 开发 AndroidX Media,只需打开此存储库根目录中的项目即可。