集成SDK
更新时间: 2024/08/07 10:23:29
本文介绍如何集成 Android 端的播放器 SDK。
准备工作
- 下载最新版的播放器SDK。
- 准备 Android Studio 或者 Eclipse 集成开发环境。
- 准备Android 运行环境:Android 4.0 及以上版本。
示例项目源码
请通过 网易云信 SDK 下载中心 下载最新版本的示例项目源码。
示例项目源码提供了详细的 API 使用示例,方便您参考示例项目源码快速实现播放器相关功能。
目录结构
开发者需要将播放器 SDK 集成到应用中,包括 Jar 包、底层动态库及相关资源文件。每个应用需要独立集成 Jar 包及动态库,如下图所示。
播放器 SDK 提供两个 ZIP 包,分别是 NELivePlayer_Demo_Android_vx.x.x
和 LivePlayer_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。
-
在项目根目录的
build.gradle
文件里添加mavenCentral
,示例如下:allprojects { repositories { ... mavenCentral() } }
-
在
gradle
文件添加对应依赖,示例如下:implementation 'com.netease.nimlib:neliveplayer:3.2.2' implementation 'com.netease:gslb:1.1.4'
- 3.1.2 为播放器的版本号,请根据您的需要替换为对应的版本号。
- 请访问网易云信 SDK 下载中心,获取播放器最新的版本号。
方法二:使用 SDK 包手动集成
-
若您需要创建新项目,在 Android Studio 里,在顶部菜单依次选择 File > New > New Project 新建工程,再依次选择 Phone and Tablet > Empty Activity,单击 Next。
创建 Android 项目成功后,Android Studio 会自动开始同步 gradle, 您需要等同步成功后再进行下一步操作。
-
将 获取的最新版的播放器 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/ -
修改
app/build.gradle
文件,添加neliveplayer-x.x.x.jar
、NELPGslb-x.x.x.jar
文件和动态库文件的依赖。dependencies { compile fileTree(dir: 'libs', include: '*.jar') } sourceSets { main { jniLibs.srcDirs = ['libs'] } }
-
单击 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.** {*;}