ExoPlayer 是 Android 的应用程序级媒体播放器。最新版本作为AndroidX Media的一部分以新的包名称发布,所有未来的开发都将在该项目中进行。
该项目已被弃用。所有用户都应迁移到 AndroidX Media3。请参阅我们的迁移指南和脚本,将您的代码库移动到 Media3 包名称。
- 我们计划继续将提交推送
dev-v2
到此存储库中的分支,直到 2024 年 3 月。 exoplayer:2.19.1
是该项目发布的最后一个工件,我们不打算再发布了。
- 开发人员指南提供了丰富的信息。
- 类参考文档 ExoPlayer 类。请注意,这些类均以其 Media3 包名称进行记录。
- 发行说明记录了每个版本中的主要更改。
- 关注我们的开发者博客,了解最新的 ExoPlayer 开发动态!
最新版本的使用说明请参考 AndroidX Media 。
ExoPlayer 模块可以从Google Maven 存储库获取。还可以克隆存储库并在本地依赖模块。
开始使用 ExoPlayer 的最简单方法是将其作为 gradle 依赖项添加到build.gradle
应用程序模块的文件中。以下内容将添加对完整库的依赖项:
implementation 'com.google.android.exoplayer:exoplayer:2.X.X'
2.X.X
您的首选版本在哪里。
作为完整库的替代方案,您可以仅依赖实际需要的库模块。例如,以下内容将添加对 Core、DASH 和 UI 库模块的依赖项,这可能是仅播放 DASH 内容的应用程序所需要的:
implementation 'com.google.android.exoplayer:exoplayer-core:2.X.X' implementation 'com.google.android.exoplayer:exoplayer-dash:2.X.X' implementation 'com.google.android.exoplayer:exoplayer-ui:2.X.X'
当依赖于各个模块时,它们必须都是相同的版本。
下面列出了可用的库模块。添加对完整 ExoPlayer 库的依赖项相当于单独添加对所有库模块的依赖项。
exoplayer-core
:核心功能(必需)。exoplayer-dash
:支持 DASH 内容。exoplayer-hls
:支持 HLS 内容。exoplayer-rtsp
:支持 RTSP 内容。exoplayer-smoothstreaming
:支持 SmoothStreaming 内容。exoplayer-transformer
:媒体转换功能。exoplayer-ui
:与 ExoPlayer 一起使用的 UI 组件和资源。
除了库模块之外,ExoPlayer 还具有依赖外部库来提供附加功能的扩展模块。某些扩展可从 Maven 存储库获取,而其他扩展则必须手动构建。浏览扩展目录及其各自的自述文件以获取详细信息。
有关可用库和扩展模块的更多信息可以在Google Maven ExoPlayer 页面上找到。
如果尚未启用,您还需要在依赖于 ExoPlayer 的所有文件中启用 Java 8 支持
build.gradle
,方法是将以下内容添加到该
android
部分:
compileOptions { targetCompatibility JavaVersion.VERSION_1_8 }
如果您的 GradleminSdkVersion
为 20 或更低,您应该
启用 multidex以防止构建错误。
使用某些 ExoPlayer 扩展模块时,需要克隆存储库并在本地依赖模块。如果您想对 ExoPlayer 进行本地更改,或者想使用开发分支,这也是一种合适的方法。
首先,将存储库克隆到本地目录:
git clone https://github.com/google/ExoPlayer.git
cd ExoPlayer
接下来,将以下内容添加到项目的settings.gradle
文件中,并替换
path/to/exoplayer
为本地副本的路径:
gradle.ext.exoplayerModulePrefix = 'exoplayer-' apply from: file("path/to/exoplayer/core_settings.gradle")
您现在应该看到 ExoPlayer 模块作为项目的一部分出现。您可以像依赖任何其他本地模块一样依赖它们,例如:
implementation project(':exoplayer-library-core') implementation project(':exoplayer-library-dash') implementation project(':exoplayer-library-ui')