服务端 API 文档

接入指引

最近更新时间:2021-10-20 11:57:52

产品概述

腾讯云视立方 Android 超级播放器是腾讯云开源的一款播放器组件,简单几行代码即可拥有类似腾讯视频强大的播放功能,包括横竖屏切换、清晰度选择、手势和小窗等基础功能,还支持视频缓存,软硬解切换和倍速播放等特殊功能,相比系统播放器,支持格式更多,兼容性更好,功能更强大,同时还具备首屏秒开、低延迟的优点,以及视频缩略图等高级能力。

项目地址

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

阅读对象

本文档部分内容为腾讯云专属能力,使用前请开通 腾讯云 相关服务,未注册用户可注册账号 免费试用

集成指引

您可以选择使用 Gradle 自动加载的方式,或者手动下载 aar 再将其导入到您当前的工程项目中。

方法一:自动加载(AAR)

  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 {
          implementation 'com.tencent.liteav:LiteAVSDK_Player:latest.release'
      }
  3. 通过在 gradle 配置 mavenCentral 库,自动下载更新 LiteAVSDK,打开app/build.gradle,进行下面的配置:

    • 在 dependencies 中添加 LiteAVSDK_Player 的依赖。
      dependencies {
          implementation 'com.tencent.liteav:LiteAVSDK_Player:latest.release'
          implementation project(':superplayerkit')
          // 超级播放器弹幕集成的第三方库
          implementation 'com.github.ctiao:DanmakuFlameMaster:0.5.3'
      }
    • app/build.gradle defaultConfig 中,指定 App 使用的 CPU 架构(目前 LiteAVSDK 支持 armeabi 、 armeabi-v7a 和 arm64-v8a,可根据项目需求配置)。
      ndk {
          abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
      }
    • 在工程目录的 build.gradle 添加 mavenCentral 库。
      repositories {
          mavenCentral()
      }
  4. 单击 Sync Now 按钮同步 SDK,如果您的网络连接 mavenCentral 没有问题,很快 SDK 就会自动下载集成到工程里。

方法二:手动下载(AAR)

  1. 下载 SDK + Demo 开发包,项目地址为 Android
  2. 导入SDK/LiteAVSDK_Player_XXX.aar(其中 XXX 为版本号)到 app 下面的 libs 文件夹以及复制Demo/superplayerkit这个 module 到工程中。
  3. 在工程目录下的 setting.gradle 导入superplayerkit
    include ':superplayerkit'
  4. 打开superplayerkit工程的 build.gradle 文件修改 compileSdkVersion,buildToolsVersion,minSdkVersion,targetSdkVersion 和 rootProject.ext.liteavSdk 的常量值。

    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    
    defaultConfig {
        targetSdkVersion 23
        minSdkVersion 19
    }
    
    dependencies {
        implementation(name:'LiteAVSDK_Player_8.9.10349', ext:'aar')
    }
    • 配置 repositories
      repositories {
          flatDir {
              dirs '../app/libs'
          }
      }
  5. app/build.gradle中添加依赖:
    compile(name:'LiteAVSDK_Player_8.9.10349', ext:'aar')
    implementation project(':superplayerkit')
    // 超级播放器弹幕集成的第三方库
    implementation 'com.github.ctiao:DanmakuFlameMaster:0.5.3'
  6. 在项目build.gradle中添加:
    allprojects {
        repositories {
            flatDir {
                dirs 'libs'
            }
        }
    }
  7. app/build.gradle defaultConfig 中,指定 App 使用的 CPU 架构(目前 LiteAVSDK 支持 armeabi 、 armeabi-v7a 和 arm64-v8a)。
    ndk {
        abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
    }
  8. 单击 Sync Now 按钮同步 SDK,完成超级播放器的集成工作。

方法三:集成 SDK(jar+so)

如果您不想集成 aar 库,也可以通过导入 jar 和 so 库的方式集成 LiteAVSDK:

  1. 下载 SDK + Demo 开发包,项目地址为 Android,下载完成后进行解压。在SDK目录找到SDK/LiteAVSDK_Player_XXX.zip(其中XXX为版本号),解压得到libs目录,里面包含jar文件和so文件夹,文件清单如下:
  2. Demo/superplayerkit这个 module 复制到工程中,然后在工程目录下的 setting.gradle 导入superplayerkit
    include ':superplayerkit'
  3. 步骤1 解压得到的libs文件夹复制superplayerkit工程根目录。
  4. 修改superplayerkit/build.gradle文件:

    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    
    defaultConfig {
        targetSdkVersion 23
        minSdkVersion 19
    }
    • 配置 sourceSets,添加so库引用代码。
      sourceSets{
            main{
                jniLibs.srcDirs = ['libs']
            }
        }
    • 配置 repositories,添加flatDir,指定本地仓库路径。
      repositories {
          flatDir {
              dirs 'libs'
          }
      }
  5. app/build.gradle defaultConfig 中,指定 App 使用的 CPU 架构(目前 LiteAVSDK 支持 armeabi 、 armeabi-v7a 和 arm64-v8a)。
    ndk {
        abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
    }
  6. 单击 Sync Now 按钮同步 SDK,完成 超级播放器的集成工作。

配置 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" />

使用播放功能

使用播放器

播放器主类为SuperPlayerView,创建后即可播放视频, 支持集成fileId或者url进行播放:

集成fileId播放

//在布局文件引入SuperPlayerView ,然后创建实例
mSuperPlayerView = (SuperPlayerView) findViewById(R.id.superVodPlayerView);
//不开防盗链
SuperPlayerModel model = new SuperPlayerModel();
model.appId = 1400329073;// 配置 AppId
model.videoId = new SuperPlayerVideoId();
model.videoId.fileId = "5285890799710670616"; // 配置 FileId
mSuperPlayerView.playWithModel(model);

集成url播放

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

私有加密播放

视频加密属于长视频场景下的一个细分场景。是视频平台自有的独播剧、网络课程等具有版权的视频,采取加密防止视频被非法下载和传播的措施。
云点播分别在 视频加密综述视频加密接入指引 中详细介绍了视频加密的原理和接入方式。

//私有加密播放需填写 psign, psign 即超级播放器签名,签名介绍和生成方式参见链接:https://cloud.tencent.com/document/product/266/42436
SuperPlayerModel model = new SuperPlayerModel();
model.appId = 1400329071;// 配置 AppId
model.videoId = new SuperPlayerVideoId();
model.videoId.fileId = "5285890799710173650"; // 配置 FileId
mSuperPlayerView.playWithModel(model);
model.videoId.pSign = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTQwMDMyOTA3MSwiZmlsZUlkIjoiNTI4NTg5MDc5OTcxMDE3MzY1MCIsImN1cnJlbnRUaW1lU3RhbXAiOjEsImV4cGlyZVRpbWVTdGFtcCI6MjE0NzQ4MzY0NywidXJsQWNjZXNzSW5mbyI6eyJ0IjoiN2ZmZmZmZmYifSwiZHJtTGljZW5zZUluZm8iOnsiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3fX0.yJxpnQ2Evp5KZQFfuBBK05BoPpQAzYAWo6liXws-LzU"; 
mSuperPlayerView.playWithModel(model);

运行代码,可以看到视频在手机上播放,并且界面上大部分功能都处于可用状态。

选择 FileId

视频 FileId 在一般是在视频上传后,由服务器返回:

  1. 客户端视频发布后,服务器会返回 FileId 到客户端。
  2. 服务端视频上传时,在 确认上传 的通知中包含对应的 FileId。

如果文件已存在腾讯云,则可以进入 媒资管理 ,找到对应的文件,查看 FileId。如下图所示,ID 即表示 FileId:

打点功能

在播放长视频时,打点信息有助于观众找到感兴趣的点。使用 修改媒体文件属性 API,通过 AddKeyFrameDescs.N 参数可以为视频设置打点信息。

调用后,播放器的界面会增加新的元素。

小窗播放

小窗播放可以悬浮在所有 Activity 之上播放。使用小窗播放非常简单,只需要在开始播放前调用下面代码即可:

// 播放器配置
SuperPlayerGlobalConfig prefs = SuperPlayerGlobalConfig.getInstance();
// 开启悬浮窗播放
prefs.enableFloatWindow = true;
//设置悬浮窗的初始位置和宽高
SuperPlayerGlobalConfig.TXRect rect = new SuperPlayerGlobalConfig.TXRect();
rect.x = 0;
rect.y = 0;
rect.width = 810;
rect.height = 540;
// ...其他配置

退出播放

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

mSuperPlayerView.resetPlayer();

更多功能

完整功能可扫码下载视频云工具包体验,或直接运行工程 Demo。

目录