tencent cloud

文档反馈

接入指引

最后更新时间:2022-08-16 16:45:42

    产品概述

    腾讯云视立方 Android 超级播放器是腾讯云开源的一款播放器组件,集质量监控、视频加密、极速高清、清晰度切换、小窗播放等功能于一体,适用于所有点播、直播播放场景。封装了完整功能并提供上层 UI,可帮助您在短时间内,打造一个媲美市面上各种流行视频 App 的播放软件。

    若超级播放器组件满足不了您的业务的个性化需求,且您具有一定的开发经验,可以集成 播放器 SDK,自定义开发播放器界面和播放功能。

    准备工作

    1. 为了您体验到更完整全面的播放器功能,建议您开通 云点播 相关服务,未注册用户可注册账号 试用。若您不使用云点播服务,可略过此步骤,但集成后仅可使用播放器基础能力。
    2. 下载 Android Studio,您可以进入 Android Studio 官网 下载安装,如已下载可略过该步骤。

    通过本文您可以学会

    1. 如何集成腾讯云视立方 Android 超级播放器
    2. 如何创建和使用播放器

    集成准备

    步骤1:项目下载

    腾讯云视立方 Android 超级播放器的项目地址是 SuperPlayer_Android

    您可通过 下载播放器组件 ZIP 包Git 命令下载 的方式下载腾讯云视立方 Android 超级播放器项目工程。

    您可以直接下面播放器组件 ZIP 包,单击页面的 Code > Download ZIP 下载。

    步骤2:集成指引

    本步骤可指导您如何集成播放器,您可选择使用 Gradle 自动加载的方式,手动下载 aar 再将其导入到您当前的工程或导入 jar 和 so 库的方式集成项目。

    1. 下载 SDK + Demo 开发包,项目地址为 Android

    2. Demo/superplayerkit这个 module 复制到工程中,然后进行下面的配置:

      • 在工程目录下的setting.gradle 导入superplayerkit
        include ':superplayerkit'
        
      • 打开superplayerkit 工程的 build.gradle 文件修改 compileSdkVersion,buildToolsVersion,minSdkVersion,targetSdkVersion 和 rootProject.ext.liteavSdk 的常量值。

        compileSdkVersion 26
        buildToolsVersion "26.0.2"
           defaultConfig {
           targetSdkVersion 23
           minSdkVersion 19
        }
           dependencies {
           //如果要集成历史版本,可将 latest.release 修改为对应的版本,例如:8.5.290009
           implementation 'com.tencent.liteav:LiteAVSDK_Player:latest.release'
        }
        

        请参见上面的步骤,把common模块导入到项目,并进行配置。
    3. 通过在 gradle 配置 mavenCentral 库,自动下载更新 LiteAVSDK,打开app/build.gradle,进行下面的配置:

      1. 在 dependencies 中添加 LiteAVSDK_Player 的依赖。
        dependencies {
         implementation 'com.tencent.liteav:LiteAVSDK_Player:latest.release'
         implementation project(':superplayerkit')
         // 超级播放器弹幕集成的第三方库
         implementation 'com.github.ctiao:DanmakuFlameMaster:0.5.3'
        }
        

        如果您需要集成历史版本的 LiteAVSDK_Player SDK ,可以在 MavenCentral 查看历史版本,然后通过下面的方式进行集成:
        dependencies {
        // 集成8.5.10033 版本LiteAVSDK_Player SDK
        implementation 'com.tencent.liteav:LiteAVSDK_Player:8.5.10033'
        }
        
      2. app/build.gradle defaultConfig 中,指定 App 使用的 CPU 架构(目前 LiteAVSDK 支持 armeabi 、 armeabi-v7a 和 arm64-v8a,可根据项目需求配置)。
        ndk {
         abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
        }
        

        如果之前没有使用过9.4以及更早版本的 SDK 的 下载缓存功能(TXVodDownloadManager 中的相关接口),并且不需要在9.5及后续 SDK 版本播放9.4及之前缓存的下载文件,可以不需要该功能的 so 文件,达到减少安装包的体积,例如:在9.4及之前版本使用了 TXVodDownloadManager 类的 setDownloadPath 和 startDownloadUrl 函数下载了相应的缓存文件,并且应用内存储了 TXVodDownloadManager 回调的 getPlayPath 路径用于后续播放,这时候需要 libijkhlscache-master.so 播放该 getPlayPath 路径文件,否则不需要。可以在 app/build.gradle 中添加:
        packagingOptions {
        exclude "lib/armeabi/libijkhlscache-master.so"
        exclude "lib/armeabi-v7a/libijkhlscache-master.so"
        exclude "lib/arm64-v8a/libijkhlscache-master.so"
        }
        
      3. 在工程目录的 build.gradle 添加 mavenCentral 库。
        repositories {
         mavenCentral()
        }
        
    4. 单击 Sync Now 按钮同步 SDK,如果您的网络连接 mavenCentral 没有问题,很快 SDK 就会自动下载集成到工程里。

    您已经完成了腾讯云视立方 Android 超级播放器项目集成的步骤。

    步骤3:配置 App 权限

    在 AndroidManifest.xml 中配置 App 的权限,LiteAVSDK 需要以下权限:

    <!--网络权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--点播播放器悬浮窗权限-->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <!--存储-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    

    步骤4:设置混淆规则

    在 proguard-rules.pro 文件,将 TRTC SDK 相关类加入不混淆名单:

    -keep class com.tencent.** { *; }
    

    您已经完成了腾讯云视立方 Android 超级播放器 app 权限配置的步骤。

    步骤5:使用播放器功能

    本步骤,用于指导用户创建和使用播放器,并使用播放器进行视频播放。

    1. 创建播放器
      播放器主类为SuperPlayerView,创建后即可播放视频, 支持集成 FileID 或者 URL 进行播放。在布局文件创建 SuperPlayerView:

      <!-- 超级播放器-->
      <com.tencent.liteav.demo.superplayer.SuperPlayerView
      android:id="@+id/superVodPlayerView"
      android:layout_width="match_parent"
      android:layout_height="200dp" />
      
    2. 播放视频
      本步骤用于指导用户播放视频。腾讯云视立方 Android 超级播放器可用于直播和点播两种播放场景,具体如下:

      • 点播播放:超级播放器支持两种点播播放方式,可以 通过 FileID 播放 腾讯云点播媒体资源,也可以直接使用 URL 播放 地址进行播放。
      • 直播播放:超级播放器可使用 URL 播放 的方式实现直播播放。通过传入 URL 地址,即可拉取直播音视频流进行直播播放。腾讯云直播URL生成方式可参见 自主拼装直播 URL

        URL可以是点播文件播放地址,也可以是直播拉流地址,传入相应 URL 即可播放相应视频文件。

        SuperPlayerModel model = new SuperPlayerModel();
        model.appId = 1400329073; // 配置 AppId
        model.url = "http://your_video_url.mp4";   // 配置您的播放视频url
        mSuperPlayerView.playWithModel(model);
        

    3. 退出播放
      当不需要播放器时,调用resetPlayer清理播放器内部状态,释放内存。

      mSuperPlayerView.resetPlayer();
      

    至此,您已经完成了腾讯云视立方 Android 超级播放器创建、播放视频和退出播放的能力即成。

    功能使用

    本章将为您介绍几种常见的播放器功能使用方式,更为完整的功能使用方式可参见 Demo 体验

    1、全屏播放

    超级播放器支持全屏播放,在全屏播放场景内,同时支持锁屏、手势控制音量和亮度、弹幕、截屏、清晰度切换等功能设置。功能效果可在 腾讯云视立方 App > 播放器 > 超级播放器 中体验,单击界面右下角即可进入全屏播放界面。

    在窗口播放模式下,可通过调用下述接口进入全屏播放模式:

    mControllerCallback.onSwitchPlayMode(SuperPlayerDef.PlayerMode.FULLSCREEN);
    

    单击返回,即可返回至窗口播放模式。

    //单击后触发下面的接口
    mControllerCallback.onBackPressed(SuperPlayerDef.PlayerMode.FULLSCREEN);
    onSwitchPlayMode(SuperPlayerDef.PlayerMode.WINDOW);
    

    2、悬浮窗播放

    超级播放器支持悬浮窗小窗口播放,可在切换到其它应用时,不打断视频播放功能。功能效果可在 腾讯云视立方 App > 播放器 > 超级播放器 中体验,单击界面左上角返回,即可体验悬浮窗播放功能。

    悬浮窗播放依赖于 AndroidManifest 中的以下权限:

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    
    // 切换悬浮窗触发的代码接口
    mSuperPlayerView.switchPlayMode(SuperPlayerDef.PlayerMode.FLOAT);
    //单击浮窗返回窗口触发的代码接口
    mControllerCallback.onSwitchPlayMode(SuperPlayerDef.PlayerMode.WINDOW);
    

    3、视频封面

    超级播放器支持用户自定义视频封面,用于在视频接收到首帧画面播放回调前展示。功能效果可在 腾讯云视立方 App > 播放器 > 超级播放器 > 自定义封面演示 视频中体验。

    • 当超级播放器设置为自动播放模式PLAY_ACTION_AUTO_PLAY时,视频自动播放,此时将在视频首帧加载出来之前展示封面;
    • 当超级播放器设置为手动播放模式PLAY_ACTION_MANUAL_PLAY时,需用户单击播放后视频才开始播放。在单击播放前将展示封面;在单击播放后到视频首帧加载出来前也将展示封面。

    视频封面支持使用网络 URL 地址或本地 File 地址,使用方式可参见下述指引。若您通过 FileID 的方式播放视频,则可直接在云点播内配置视频封面。

    SuperPlayerModel model = new SuperPlayerModel();
    model.appId = "您的appid";
    model.videoId = new SuperPlayerVideoId();
    model.videoId.fileId = "您的fileId"; 
    //播放模式,可设置自动播放模式:PLAY_ACTION_AUTO_PLAY,手动播放模式:PLAY_ACTION_MANUAL_PLAY
    model.playAction = PLAY_ACTION_MANUAL_PLAY;
    //设定封面的地址为网络url地址,如果coverPictureUrl不设定,那么就会自动使用云点播控制台设置的封面
    model.coverPictureUrl = "http://1500005830.vod2.myqcloud.com/6c9a5118vodcq1500005830/cc1e28208602268011087336518/MXUW1a5I9TsA.png" 
    mSuperPlayerView.playWithModel(model);
    

    4、视频列表轮播

    超级播放器支持视频列表轮播,即在给定一个视频列表后:

    • 支持按顺序循环播放列表中的视频,播放过程中支持自动播放下一集也支持手动切换到下一个视频。
    • 列表中最后一个视频播放完成后将自动开始播放列表中的第一个视频。

    功能效果可在 腾讯云视立方 App> 播放器 > 超级播放器 > 视频列表轮播演示视频中体验。

    //步骤1:构建轮播的List<SuperPlayerModel>
    ArrayList<SuperPlayerModel> list = new ArrayList<>();
    SuperPlayerModel model = new VideoModel();
    model = new SuperPlayerModel();
    model.videoId = new SuperPlayerVideoId();
    model.appid = 1252463788;
    model.videoId.fileId = "4564972819219071568";
    list.add(model);
    model = new SuperPlayerModel();
    model.videoId = new SuperPlayerVideoId();
    model.appid = 1252463788;
    model.videoId.fileId = "4564972819219071679";
    list.add(model);
    //步骤2:调用轮播接口
    mSuperPlayerView.playWithModelList(list, true, 0);
    
    public void playWithModelList(List<SuperPlayerModel> models, boolean isLoopPlayList, int index);
    

    接口参数说明

    参数名 类型 描述
    models List 轮播数据列表
    isLoopPlayList boolean 是否循环
    index int 开始播放的 SuperPlayerModel 索引

    5、视频试看

    超级播放器支持视频试看功能,可以适用于非 VIP 试看等场景,开发者可以传入不同的参数来控制视频试看时长、提示信息、试看结束界面等。功能效果可在 腾讯云视立方 App> 播放器 > 超级播放器 > 试看功能演示 视频中体验。

    方法一:
    //步骤1:创建视频mode
    SuperPlayerModel mode = new SuperPlayerModel();
    //...添加视频源信息
    //步骤2:创建试看信息 mode
    VipWatchModel vipWatchModel = new VipWatchModel("可试看%ss,开通 VIP 观看完整视频",15);
    mode.vipWatchMode = vipWatchModel;
    //步骤3:调用播放视频方法
    mSuperPlayerView.playWithModel(mode);
    方法二:
    //步骤1:创建试看信息 mode
    VipWatchModel vipWatchModel = new VipWatchModel("可试看%ss,开通 VIP 观看完整视频",15);
    //步骤2:调用设置试看功能方法
    mSuperPlayerView.setVipWatchModel(vipWatchModel);
    
    public VipWatchModel(String tipStr, long canWatchTime)
    
    

    VipWatchModel 接口参数说明:

    参数名 类型 描述
    tipStr String 试看提示信息
    canWatchTime Long 试看时长,单位为妙

    6、动态水印

    超级播放器支持在播放界面添加不规则跑动的文字水印,有效防盗录。全屏播放模式和窗口播放模式均可展示水印,开发者可修改水印文本、文字大小、颜色。功能效果可在 腾讯云视立方 App > 播放器 > 超级播放器 > 动态水印 演示视频中体验。

    方法一:
    //步骤1:创建视频mode
    SuperPlayerModel mode = new SuperPlayerModel();
    //...添加视频源信息
    //步骤2:创建水印信息mode
    DynamicWaterConfig dynamicWaterConfig = new DynamicWaterConfig("shipinyun", 30, Color.parseColor("#80FFFFFF"));
    mode.dynamicWaterConfig = dynamicWaterConfig;
    //步骤3:调用播放视频方法
    mSuperPlayerView.playWithModel(mode);
    方法二:
    //步骤1:创建水印信息mode
    DynamicWaterConfig dynamicWaterConfig = new DynamicWaterConfig("shipinyun", 30, Color.parseColor("#80FFFFFF"));
    //步骤2:调用设置动态水印功能方法
    mSuperPlayerView.setDynamicWatermarkConfig(dynamicWaterConfig);
    
    public DynamicWaterConfig(String dynamicWatermarkTip, int tipTextSize, int tipTextColor)
    
    

    接口参数说明

    参数名 类型 描述
    dynamicWatermarkTip String 水印文本信息
    tipTextSize int 文字大小
    tipTextColor int 文字颜色

    Demo 体验

    更多完整功能可直接运行工程 Demo,或扫码下载移动端 Demo 腾讯云视立方 App 体验。

    运行工程 Demo

    1. 在 Android Studio 的导航栏选择 File > Open,在弹框中选择 Demo 工程目录: $SuperPlayer_Android/Demo,待成功导入 Demo 工程后,单击 Run app,即可成功运行 Demo 。
    2. 成功运行 Demo 后如下图,进入播放器 > 超级播放器,可体验播放器功能。

    腾讯云视立方 App

    腾讯云视立方 App > 播放器 中可体验更多超级播放器功能。

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持