You need to enable JavaScript to run this app.
导航
快速开始
最近更新时间:2025.04.07 18:00:30首次发布时间:2025.04.07 18:00:30
我的收藏
有用
有用
无用
无用

PlayerKit 是火山引擎推出的开源 Android 播放器 UI 组件,封装播放器 SDK 核心功能并内置标准化 UI 组件,集成播放控制、多清晰度切换、小窗播放、播放质量监控、视频加密及极速高清等能力。该组件提供高可扩展的播放器架构设计和抖音同款播放策略实现,支持通过标准化 API 快速构建符合主流视频应用体验的播放功能,适配短视频、中视频、长视频等多种业务场景。

准备工作

视频点播通过 License 管理播放器 SDK 及其增值服务的使用权限和时间。在项目测试阶段,您可以在视频点播控制台申请免费的测试 License。您需完成以下操作:

注意

测试 License 仅限项目测试阶段使用,不可续期。测试 License 到期会导致鉴权失败,进而影响业务的正常使用。项目上线前,请升级至正式 License

集成 PlayerKit

步骤 1:下载项目

PlayerKit 的项目地址是 PlayerKit_Android。执行以下 Git 命令下载项目工程:

git clone https://github.com/volcengine/VEVodDemo-android
cd VEVodDemo-android

步骤 2:拷贝项目

将以下文件夹复制到您的项目根目录下,层级结构与 VEVodDemo-Android 中保持一致:

gradle-config
vod-playerkit

说明

复制操作完成后,建议执行一次 git commit 命令,并在提交信息中记录 VEVodDemo-iOS 当前的最新提交 ID。源代码可能会发生变动,本次提交有助于您进行追溯。

步骤 3:配置 Maven 仓库

检查项目根目录下 build.gradle 文件中的 repositories 部分配置 google、mavenCentral 和火山引擎 maven 服务。

allprojects {
    repositories {
        google()
        mavenCentral()
        maven {
            url "https://artifact.bytedance.com/repository/Volcengine/" // 火山引擎 maven 服务
        }
    }
}

步骤 4:配置 App 权限

AndroidManifest.xml 文件中声明以下播放器需要的权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

说明

  • WRITE_EXTERNAL_STORAGE 为非必需权限,可根据您的实际需求设置:
    • 如果您无需播放外置存储上的音视频资源,也不将下载的视频储存至外置存储,则无需申请此权限。视频下载缓存文件夹默认在应用内置存储中,无需申请权限,详见快速开始 - 初始化播放器 SDK
    • 如果您需要申明 WRITE_EXTERNAL_STORAGE 权限,请参考 Android 存储用例和最佳做法
  • 混淆规则已在 consumer-rules.pro 中配置,您无需额外操作。

步骤 5:引入 PlayerKit 模块

  1. settings.gradle 中添加以下代码引入 PlayerKit 模块:

    include ':app'
    
    apply from: file("gradle-config/vod_playerkit_library_settings.gradle")
    
  2. 在 App module 的 build.gradle 中添加以下代码引入 PlayerKit 依赖:

    // 在 app 的 build.gradle 文件添加 Java 8 支持
    android {
        // ...
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    }
    
    dependencies {
        api project(":vod-playerkit:vod-player")
        api project(":vod-playerkit:vod-player-utils")
        api project(":vod-playerkit:vod-player-volcengine")
    }
    
  3. gradle-config/constants.gradle 中修改播放器 SDK 的版本号并配置增值服务。

    project.ext {
        bytedance = [
                ttsdkPlayerEdition   : "premium", // 支持设为:"premium", "standard"
                ttsdkPlayerExtensions: "super_resolution,abr", // supported value "super_resolution,abr"
                ttsdkVersion         : "1.45.2.7", 
        ]
    }
    
    • 设置 ttsdkPlayerEdition。支持设为 premium 高级版和 standard 基础版。
    • 修改 ttsdkPlayerExtensions 添加增值服务,如 super_resolution(超分)、abr(ABR 起播选档)。多个增值服务用逗号隔开。
    • 修改 ttsdkVersion 设置 SDK 版本号。可前往播放器 SDK 发布历史获取最新版本。
  4. 同步 Gradle,确保在 Android Studio 中正确引入 vod-playerkit 模块。没有报错则表示集成完成。
    Image

步骤 6:添加 License 文件

将申请的 License 文件复制到 App 的 assets 文件夹下。

开始播放

步骤 1:初始化 PlayerKit

App.java 文件里参考以下示例代码初始化 PlayerKit:

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // 1. 设置 Logcat & Asserts 开关
        // 开启日志方便排查问题,release 版本一定要关闭
        L.ENABLE_LOG = BuildConfig.DEBUG;
        // 开启断言在内部状态出错时会抛 crash,便于及时发现问题。release 版本一定要关闭。
        Asserts.DEBUG = BuildConfig.DEBUG;
        
        // 2. 初始化配置
        VolcPlayerInit.config(new VolcPlayerInitConfig.Builder()
                .setContext(context)
                .setAppInfo(new AppInfo.Builder()
                        .setAppId("your app id") // 应用 ID,可在视频点播控制台应用管理页面
                        .setAppName("your app English name") // 应用英文名,可在视频点播控制台应用管理页面获取
                        .setAppChannel("your app channel") // 渠道号。由您自定义,如小米应用商店 (xiaomi)、华为应用市场 (huawei) 等
                        .setAppVersion(BuildConfig.VERSION_NAME) // App 版本号。合法版本号应包含大于或等于 2 个 . 分隔符,如 "1.3.2"
                        .setLicenseUri("assets:///vod.lic") // License 文件路径。假设您的 License 文件路径为 /VEVodDemo-android/app/src/main/assets/vod.lic,则 LICENSE_URI 应为 assets:///vod.lic
                        .build())
                .build()
        );
        
        // 3. 调用初始化方法
        VolcPlayerInit.initSync();
    }
}

步骤 2:创建 VideoView

VideoView 为播放控件核心类,创建后即可播放视频。参考以下示例代码在布局文件创建 VideoView

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" 
    android:layout_height="match_parent"
    android:background="#000000">

    <com.bytedance.playerkit.player.playback.VideoView 
        android:id="@+id/videoView"
        android:layout_width="match_parent" 
        android:layout_height="match_parent" />

</FrameLayout>

步骤 3:设置播放源

参考以下示例代码使用 DirectUrl 播放源进行播放。您仅需将示例代码中的 URL 替换成真实的视频播放地址,即可实现视频播放。

public class SampleVideoActivity extends AppCompatActivity {

    private VideoView videoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sample_video_activity);
        
        // 1. 创建 VideoView 实例
        videoView = findViewById(R.id.videoView);

        // 2. 配置 VideoView
        videoView.selectDisplayView(DisplayView.DISPLAY_VIEW_TYPE_TEXTURE_VIEW);
        videoView.setDisplayMode(DisplayModeHelper.DISPLAY_MODE_ASPECT_FIT);

        // 3. 创建 PlaybackController 实例并绑定 VideoView
        PlaybackController controller = new PlaybackController();
        controller.bind(videoView);

        // 4. 创建 MediaSource 实例并绑定 VideoView
        MediaSource mediaSource = createDirectUrlSimpleMediaSource();
        // MediaSource mediaSource = createVidMediaSource();
        videoView.bindDataSource(mediaSource);
    }

    /**
     * 创建单清晰度播放源
     */
    private MediaSource createDirectUrlSimpleMediaSource() {
        // 必传,您需要替换成真实的视频播放地址
        String url = "http://example.volcengine.com/video_480p.mp4"; 
        // media Id 和 cacheKey 若不指定,内部会自动生成
        return MediaSource.createUrlSource(/*mediaId*/null, url, /*cacheKey*/null);
    }

    /**
     * 创建 Vid 播放源
     */
    private MediaSource createVidMediaSource() {
        String mediaId = "your video id"; // 必传
        String playAuthToken = "your video id's playAuthToken"; // 必传
        return MediaSource.createIdSource(mediaId, playAuthToken);
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 5. 开始播放
        videoView.startPlayback();
    }

    @Override
    protected void onPause() {
        super.onPause();
        // 6. 暂停播放
        videoView.pausePlayback();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 7. 停止播放
        videoView.stopPlayback();
    }
}

后续操作

至此,您已实现基础的播放功能。后续可参考以下文档了解 PlayerKit 的核心类以及进阶功能: