保利威文档中心

幫助中心

2 快速整合

更新時間:2025-10-27 14:51:14

整合前需先在 Polyv 官網 中註冊完畢,並開通雲點播服務。

1. Gradle 配置

1、在 Projectbuild.gradle 檔案中加入 maven仓库

allprojects {
    repositories {
        google()
        //阿里云的镜像库
        maven {url "http://maven.aliyun.com/nexus/content/groups/public/"}
        maven {url 'http://maven.aliyun.com/nexus/content/repositories/releases/'}
        mavenCentral()
        //阿里云效关于central的镜像
        maven{
            url 'https://maven.aliyun.com/repository/public'
        }
        //阿里云效仓库,必须添加
        maven {
            credentials {
                username '609cc5623a10edbf36da9615'
                password 'EbkbzTNHRJ=P'
            }
            url 'https://packages.aliyun.com/maven/repository/2102846-release-8EVsoM/'
        }
    }
}

2、在 appbuild.gradle 檔案中加入 ndk 宣告

android {
    ...
    defaultConfig {
        ...
        ndk {
            abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi', 'x86_64', 'x86'
        }
    }
    ...
}

abiFilters 可依實際情況篩選,建議配置為 arm64-v8a、armeabi-v7a、x86不要僅使用 armeabi,僅使用armeabi可能會在部分機型上出現影音不同步、跳秒播放等異常情況。

3、在 appbuild.gradle 檔案中加入依賴:

implementation 'com.android.support:support-annotations:27.1.1'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:multidex:1.0.3'

implementation 'net.polyv.android:polyvPlayer:<sdk版本>'//SDK核心包
implementation 'net.polyv.android:polyvDownload:<sdk版本>'//SDK下载功能
implementation 'net.polyv.android:polyvUpload:<sdk版本>'//SDK上传功能
implementation 'net.polyv.android:polyvSub:<sdk版本>'//弹幕、截图功能中使用

implementation 'de.hdodenhof:circleimageview:2.2.0'//圆形imageview,音频封面图使用
implementation 'com.github.bumptech.glide:glide:4.7.1'//demo中的ppt图片加载使用
implementation "com.daimajia.swipelayout:library:1.2.0@aar"//demo中下载列表使用

// 投屏sdk
implementation "net.polyv.android:media-cast-adapter-rx:1.0.5"

SDK 核心包是影片播放必須要使用的包,其他依賴可依實際需求導入。若引入庫過多導致超過64k方法數限制,可參考 Demo 解決方案。

2 配置 AndroidManifest.xml

1、在應用程式的 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.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<!-- WRITE_EXTERNAL_STORAGE属于android6.0运行时权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Android 10 起需要精确定位才能获取wifi详细信息  -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

註1:2.18.0以前版本,如需適配Android 11,即targetSdkVersion>=30,需要關閉指標標記功能(Android官方關於指標標記的說明),參考以下程式碼修改AndroidManifest.xml以關閉指標標記。

  <application 
    android:allowNativeHeapPointerTagging="false">
    ...
  </application>

3. 初始化 SDK

3.1 取得 SDK 加密串

SDK加密串在官網 雲點播-設定-API介面 裡面可見。更多說明見 初始化-設定SDK。

注意保利威後台提供的 SDK加密串 只是一種固定的加密方式,僅做演示使用。 對於設定SDK加密串,開發者應使用自己的加密方式,具體可見正式使用解決方案

3.2 初始化SDK

注意:在整合2.16.5.1及之後的版本,需要在取得用戶隱私授權的前提下,在適當的時機做httpdns啟動。以demo中為例:在PolyvMainActivity 中呼叫 PolyvSDKClient.getInstance().enableHttpDns()方法來啟動httpdns。

PolyvSDKClient.getInstance().enableHttpDns(true);

在應用程式啟動的 Application 的 onCreate() 方法中對 SDK 進行初始化。

//获取 PolyvSDKClient实例
PolyvSDKClient client = PolyvSDKClient.getInstance();
//设置SDK加密串
client.settingsWithConfigString("你的SDK加密串", "加密密钥", "加密向量");
//初始化SDK设置
client.initSetting(getApplicationContext());
//设置学员唯一标识
client.setViewerId("学员唯一标识");
//设置下载保存目录
PolyvSDKClient.getInstance().setDownloadDir("下载视频保存的目录");

4. 影片播放

影片的操作依賴於 VID,VID是影片的唯一識別標誌。影片在後台上傳成功後會自動生成VID 。

PolyvVideoView 是影片播放器的主類。在佈局檔案中宣告並初始化完成後,透過 videoView.setVid(VID) 就可以實現影片的自動播放。

<com.easefun.polyvsdk.video.PolyvVideoView
    android:id="@+id/polyv_video_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
PolyvVideoView videoView = findViewById(R.id.polyv_video_view);
videoView.setVid(vid);

5. 影片下載

下載的影片統一儲存到 PolyvSDKClient.getInstance().setDownloadDir(File)設定的目錄中。若沒有設定將會無法下載儲存。影片下載會根據VID、碼率進行下載。PolyvDownloaderManager 是對影片下載操作的封裝類,可對此進行影片下載的基本操作。

// 设置下载队列总数,多少个视频能同时下载。(默认是1,设置负数和0是没有限制)
PolyvDownloaderManager.setDownloadQueueCount(1);
//获取downloader
PolyvDownloader downloader = PolyvDownloaderManager.getPolyvDownloader(vid, bitrate);
//开始下载
downloader.start(getApplicationContext);

getPolyvDownloader() 方法會將下載影片任務儲存到 Map 中,保證下載任務的唯一。該方法回傳一個 PolyvDownloader 實例,是影片下載的具體實作類,可啟動和關閉具體的下載任務。

联系客服,在线咨询