工程配置

最近更新时间:2020-07-07 14:55:06

本文档将引导您完成 SDK 的配置。

配置步骤

SDK 下载

您可以前往 SDK 下载 文档下载对应的 SDK 文件。

下载完的 SDK 解压后有以下几个部分:

文件名 说明
LiteAVSDK_Player_xxx.aar 包含 aar 的 SDK
LiteAVSDK_Player_xxx.zip 包含 so 和 jar 的 SDK
Demo 示例工程
Demo/superplayerdemo 超级播放器的使用范例
Demo/superplayerkit 超级播放器的 UI module
Demo/README.md Player 接入文档
Player说明文档(Android).pdf Player 说明文档

系统要求

SDK 支持在 Android 4.0.3(API 15)及以上系统运行,但只有 Android 4.3(API 18)以上的系统才能开启硬件编码。

工程设置

以 aar 集成为例。

1. 新建工程

新建一个工程,取名为 SuperPlayerTest,工程如下图所示:
Android SuperPlayerTest工程示意图

2. 修改工程 gradle

修改工程的build.gralde ,内容如下:

allprojects {
    repositories {
        flatDir {
            dirs 'libs'
            dirs project(':app').file('libs')
        }
        google()
        jcenter()
    }
}

如图所示:
Android 工程gradle修改示意图

注意:

增加该代码段是为了工程中所有的 Module 都可以查到我们后续导入的 aar 文件,避免编译错误。

3. 导入 aar

将开发包中提供的 aar 文件,导入到app/libs/LiteAVSDK_XXX.aar(本例使用的是 LiteAVSDK_Player_7.4.9211.aar):

4. 导入 UI 资源 Module

为了减少您开发的工作量,推荐您导入开发包提供的superplayerkitModule 到工程中去,复用 UI 部分的代码。

Android Studio 操作流程:【File】>【New】>【Import Module】,如图所示:
Android 导入Module示意图1

导入后,需要根据您的工程,修改 superplayerkit 的 build.gradle 文件:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.0"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        ndk {
            abiFilters "armeabi", "armeabi-v7a"
        }
    }
    ...

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation(name: 'LiteAVSDK_Player_7.4.9211', ext: 'aar')
    implementation 'com.github.ctiao:DanmakuFlameMaster:0.5.3'
}

当前工程结构如图所示:
Android 导入lib后工程结构示意图

注意:

若您的项目也使用了com.github.ctiao:DanmakuFlameMaster:0.5.3依赖库,在保证兼容的前提下,建议将库的版本号统一。

5. Rebuild Project

rebuild一下project,若没有发生错误,则工程配置成功。若提示Could not find :LiteAVSDK_xxx,请检查 superplayerkit 的依赖。

配置 App 权限

在 AndroidMainfest.xml 中配置 App 的权限:

<!--网络权限-->
<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" />
注意:

  • 测试 Demo 工程为了简单起见, targetSdkVersion 设置为 API 21(Android 6.0 以下),不涉及动态权限的申请。
  • 若您的 App 工程 targetSdkVersion 在 API 23(Android 6.0)及以上,请动态申请相关权限,避免引起 crash。

验证

在工程中调用 SDK 接口, 获取 SDK 版本信息,以验证工程设备是否正确。在 MainActivity 的 onCreate 中调用 getSDKVersion 接口获取版本号:

String sdkver = TXLiveBase.getSDKVersionStr();
Log.d("liteavsdk", "liteav sdk version is : " + sdkver);

使用播放器

1. 修改布局文件

activity_main中,引入SuperPlayerView布局并设置相关属性,完整布局如下:

?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.hans.superplayertest.MainActivity">

    <com.tencent.liteav.demo.play.SuperPlayerView
        android:id="@+id/main_super_player_view"
        android:layout_width="match_parent"
        android:layout_height="200dp" />
</LinearLayout>
注意:

com.example.superplayertest.MainActivity应修改为您工程对应的 ID。

2. 修改 Activity

MainActivity中,绑定SuperPlayerView,以点播视频为例,并初始化相关配置:

public class MainActivity extends AppCompatActivity {
    private SuperPlayerView mSuperPlayerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mSuperPlayerView = findViewById(R.id.main_super_player_view);
        // 播放器配置
        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;
        prefs.floatViewRect = rect;
        // 播放器默认缓存个数
        prefs.maxCacheItem = 5;
        // 设置播放器渲染模式
        prefs.enableHWAcceleration = true;
        prefs.renderMode = TXLiveConstants.RENDER_MODE_ADJUST_RESOLUTION;

        // 通过URL方式的视频信息配置
        SuperPlayerModel model2 = new SuperPlayerModel();
        model2.title  = "测试视频-720P";
        model2.url = "http://1252463788.vod2.myqcloud.com/95576ef5vodtransgzp1252463788/68e3febf4564972819220421305/v.f30.mp4";
        // 开始播放
        mSuperPlayerView.playWithModel(model2);
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 重新开始播放
        if (mSuperPlayerView.getPlayState() == SuperPlayerConst.PLAYSTATE_PLAY) {
            mSuperPlayerView.onResume();
            if (mSuperPlayerView.getPlayMode() == SuperPlayerConst.PLAYMODE_FLOAT) {
                mSuperPlayerView.requestPlayMode(SuperPlayerConst.PLAYMODE_WINDOW);
            }
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        // 停止播放
        if (mSuperPlayerView.getPlayMode() != SuperPlayerConst.PLAYMODE_FLOAT) {
            mSuperPlayerView.onPause();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 释放
        mSuperPlayerView.release();
        if (mSuperPlayerView.getPlayMode() != SuperPlayerConst.PLAYMODE_FLOAT) {
            mSuperPlayerView.resetPlayer();
        }
    }
}

3. 修改 AndroidManifest

AndroidManifest中,对MainActivity增加一些配置:

<activity android:name=".MainActivity"
    ....
    android:screenOrientation="portrait"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:launchMode="singleTask"
    android:windowSoftInputMode="stateHidden">

</activity>
注意:

launchMode="singleTask"必须指定为singleTask,否则悬浮窗模式切回 Activity 界面会出现多个 Activity 导致异常。

4. 运行工程

运行工程,您可以在手机上看到视频播放的界面。
Android 全屏播放模式效果图

混淆配置

若您的 App 开启混淆配置, 那么请将以下规则加入不混淆名单。

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