直播
Android
产品介绍
简介
主要功能
产品优势
应用场景
使用限制
快速开始
推流端SDK
概述
更新日志
集成SDK
开发指南
实现流程
进阶功能
API 参考
错误码
播放器SDK
播放器产品简介
更新日志
下载 SDK 和示例代码
跑通示例项目
集成SDK
开发指南
实现播放功能
播放器相关回调
播放控制
时间戳校对方案
拉流地址预调度
音视频数据回调
API 参考
最佳实践
OBS推流使用指南
常见问题
服务协议

集成SDK

更新时间: 2023/02/02 09:52:44

本文介绍如何集成 Android 端的播放器 SDK。

准备工作

  • 下载最新版的播放器SDK
  • 准备 Android Studio 或者 Eclipse 集成开发环境。
  • 准备Android 运行环境:Android 4.0 及以上版本。

示例项目源码

请通过 网易云信 SDK 下载中心 下载播放器最新版本的示例项目源码。

示例项目源码提供了详细的 API 使用示例,方便您参考示例项目源码快速实现播放器相关功能。

目录结构

开发者需要将播放器 SDK 集成到应用中,包括 Jar 包、底层动态库及相关资源文件。每个应用需要独立集成 Jar 包及动态库,如下图所示。

pic

播放器 SDK 提供两个 ZIP 包,分别是 NELivePlayer_Demo_Android_vx.x.xLivePlayer_Android_SDK_vx.x.x,两个 zip 包的用途和目录说明如下:

  • NELivePlayer_Demo_Android_vx.x.x

    里面包含一个示例工程,为了方便开发时更加简单方便的使用播放器 SDK。提供在播放器 SDK 基础上封装的 playerkit 组件,Demo 中通过调用 playerkit 组件来实现音视频播放。

  • LivePlayer_Android_SDK_vx.x.x:

    存放播放器 SDK 的 Java 依赖包和底层动态链接库,文件列表如下:

    libs
    ├── armeabi-v7a
    │   ├── libneliveplayer.so
    │   ├── libnelpengine.so
    │   ├── libnelprender.so
    │   ├── libnertd.so
    ├── x86
    │   ├── libneliveplayer.so
    │   ├── libnelpengine.so
    │   ├── libnelprender.so
    │   ├── libnertd.so
    ├── arm64-v8a
    │   ├── libneliveplayer.so
    │   ├── libnelpengine.so
    │   ├── libnelprender.so
    │   ├── libnertd.so
    ├── neliveplayer-x.x.x.jar (Java层代码)
    └── NELPGslb-x.x.x.jar (Java层代码)
    

集成SDK

方法一:通过 Maven 方式集成(推荐)

V2.9.0 及之后的播放器 SDK 版本,需要从 Maven 仓库中引入播放器 SDK。

  1. 在项目根目录的 build.gradle 文件里添加 mavenCentral,示例如下:

    allprojects {
        repositories {
            ...
            mavenCentral()
        }
    }
    
  2. gradle 文件添加对应依赖,示例如下:

    implementation 'com.netease.nimlib:neliveplayer:3.2.2'
    implementation 'com.netease:gslb:1.1.4'
    
    • 3.2.2 为播放器的版本号,请根据您的需要替换为对应的版本号。
    • 请访问网易云信 SDK 下载中心,获取播放器最新的版本号。

方法二:使用 SDK 包手动集成

  1. 若您需要创建新项目,在 Android Studio 里,在顶部菜单依次选择 File > New > New Project 新建工程,再依次选择 Phone and Tablet > Empty Activity,单击 Next

    image

    创建 Android 项目成功后,Android Studio 会自动开始同步 gradle, 您需要等同步成功后再进行下一步操作。

  2. 获取的最新版的播放器 SDK 中的 Jar 包和解压缩后的 so 动态库,添加到 App 工程的 libs 目录下。

    文件/文件夹 项目路径
    neliveplayer-x.x.x.jar /app/libs/
    NELPGslb-x.x.x.jar /app/libs/
    选择和 CPU 类型匹配的某个文件夹中的 so 动态库:
    • arm64-v8a
    • armeabi-v7a
    • x86
    /app/libs/

    pic

  3. 修改 app/build.gradle 文件,添加neliveplayer-x.x.x.jarNELPGslb-x.x.x.jar文件和动态库文件的依赖。

    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
    }
    
    sourceSets {
            main {
                jniLibs.srcDirs = ['libs']
            }
    }
    
    
  4. 单击 File > Sync Project With Gradle Files 按钮,直到同步完成。

配置工程权限

SDK 需要访问网络、读写 SD 卡、获取设备信息等权限。

app/src/main/AndroidManifest.xml 中加入以下配置:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.netease.neliveplayer.demo" >

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="22" />

    <!-- 权限声明 -->
    <!-- 允许程序打开网络套接字 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <!-- 允许程序向外部存储设备写数据 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <!-- 允许程序向外部存储设备读数据 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <!-- 允许程序获取网络相关信息 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <!-- 允许程序获取Wifi网络状态信息 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <!-- 允许程序获得设备信息 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
     
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
		<!-- 欢迎页面activity,默认竖屏模式 -->
        <activity
            android:name=".NEWelcomeActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- 播放设置页面activity,默认竖屏模式 -->
        <activity 
            android:name=".NEMainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden|screenSize"
            />
		<!-- 播放页面activity,默认横屏模式 -->
        <activity 
            android:name=".NEVideoPlayerActivity"
            android:label="@string/app_name"
            android:screenOrientation="landscape"
            android:configChanges="orientation|keyboardHidden|screenSize"
            />

        <!-- 申明本地电话状态(通话状态)的广播接收器,第三方APP集成时,如果需要在App中处理播放器与本地电话的交互请加上此接收器 -->
        <!-- receiver中的com.netease.neliveplayer.demo请替换为自己的包名 -->
        <receiver android:name="com.netease.neliveplayer.demo.receiver.IncomingCallReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
        </receiver>
    </application>
 
</manifest>

防止代码混淆配置

请在 proguard-project.txt 文件中,为播放器 SDK 添加 -keep 类的配置,可以防止混淆播放器 SDK 公共类名称。

-keep class com.netease.neliveplayer.**{*;}
-keep class com.netease.gslb.** {*;}
此文档是否对你有帮助?
有帮助
我要吐槽
  • 准备工作
  • 示例项目源码
  • 目录结构
  • 集成SDK
  • 方法一:通过 Maven 方式集成(推荐)
  • 方法二:使用 SDK 包手动集成
  • 配置工程权限
  • 防止代码混淆配置