Appearance
播放器SDK使用说明
1 产品简介
本文档为了指导开发者快速接入Android 相关SDK,默认读者已经熟悉Android Studio的基本使用方法,以及具有一定的编程知识基础等。
1.1 主要功能
具备视频播放、直播地址拉流等功能。
2 接入流程
- 联系相关工作人员开通权限;
- 获取SDK授权;
- 下载SDK;
- 按照说明文档接入。
3 使用说明
3.1 开发环境
plain
Android SDK Tools: android-sdk_26.0.|+
minSdkVersion: 21
targetSdkVersion: 28
Android Studio
4 接入指南
4.1 快速集成
4.1.1 下载SDK
文件名称 | 下载地址 |
---|---|
NYPlayerSDK | https://nyfs.oss.nuoyun.tv/Download/Soft/SDK/NYPlayer_SDK_Android.aar |
NYPlayerDemo | https://nyfs.oss.nuoyun.tv/Download/Soft/SDK/NYPlayer_Demo_Android.zip |
4.1.2 导入流程
将下载好的NYPlayer-release.aar文件放到项目文件夹libs中,在app->build.gradle中如下图添加导入aar文件,详情参考demo。
4.1.3 配置权限
在gradle工程中找到Android系统文件AndroidManifest.xml,增加项目网络、系统设置相关权限,如下图:
权限 | 描述 | 用途 |
---|---|---|
android.permission.INTERNET | 允许程序打开网络 | 请求网络时需要此权限 |
android.permission.WRITE_SETTINGS | 允许程序读取或写入系统设置 | 调整视频亮度时需要此权限 |
4.2 NYPlayerSDK 授权API说明
4.2.1 验证授权
在初始化使用NYPlayerSDK前先调用此方法进行授权验证,否则会引发崩溃。
💡 Tips:建议自定义Application类中onCreate()生命周期中初始化授权
方法名
init(String licence,IAuthInfoCallback callback)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
licence | 是 | String | 密钥 |
callback | 是 | IAuthInfoCallback | 验证信息回调,可以为NULL |
返回值:
无
说明:
在接收到验证完成回调后可以获取到授权验证状态,如下代码所示,也可参考Demo代码示例。
java
String licence = ""; //授权码
NYPlayerBase.getInstance(content).init(licence, new IAuthInfoCallback() {
@Override
public void onAuthInfo(AuthStatus status) {
//此处可实现授权完毕后的操作
}
});
4.2.2 播放器SDK授权状态
在调用授权方法并接收到验证完成的回调后,可以调用此方法获取到授权状态
方法名
AuthStatus playerSDKAuthState()
参数:
无
返回值
返回值 | 类型 | 说明 |
---|---|---|
AuthStatus | AuthStatus | 授权状态 |
授权状态说明
返回值 | 说明 |
---|---|
AuthStatus.NYPlayerSDKAuthStatusUnKnow | 授权未知 |
AuthStatus.NYPlayerSDKAuthStatusSuccess | 授权有效 |
AuthStatus.NYPlayerSDKAuthStatusExpired | 授权过期 |
AuthStatus.NYPlayerSDKAuthStatusFail | 授权无效 |
4.2.3 IAuthInfoCallback属性
4.2.3.1 licence授权回调
方法名
onAuthInfo(AuthStatus status)
参数
返回值 | 类型 |
---|---|
status | AuthStatus |
返回值
无
4.3 NYPlayerSDK API说明
NYPlayerSDK是播放器SDK,NYPlayerSDK需要在授权验证通过才能正常使用。
4.3.1 创建播放器实例
NYPlayer(Context context, Handler handler)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
context | 是 | Context | 上下文 |
handler | 是 | Handler | 消息处理 |
返回值
返回值 | 类型 |
---|---|
实例 | NYPlayer |
4.3.2 配置播放器
方法名
setConfig(NYPlayerConfig config)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
config | 是 | VzanPlayerConfig | 播放器配置项,参考NYPlayerConfig |
返回值
无
4.3.3 设置播放器回调
方法名
setPlayerListener(NYPlayerListener listener)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
listener | 是 | NYPlayerListener | 播放器回调,参考NYPlayerListener |
返回值
无
4.3.4 设置视图
方法名
setPlayerView(NYPlayerTextureView view)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
view | 是 | NYPlayerTextureView | 视频渲染,NYPlayerTextureView |
返回值
无
4.3.5 设置播放源
方法名
setVideoPath(String url)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
url | 是 | String | 播放地址 |
返回值
无
4.3.6 开始/恢复播放
方法名
start()
参数
无
返回值
无
4.3.7 切换播放源
方法名
changePlaySource(String url)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
url | 是 | String | 播放地址 |
返回值
无
4.3.8 重置播放
方法名
reset()
参数
无
返回值
无
4.3.9 结束播放
方法名
stop()
参数
无
返回值
无
4.3.10 暂停播放
方法名
pause()
参数
无
返回值
无
4.3.11跳转进度
方法名
seekTo(long time)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
time | 是 | long | 进度时间 |
返回值
无
4.3.12 释放播放器
方法名
release()
参数
无
返回值
无
4.3.14 获取播放状态
方法名
boolean isPlaying()
参数
无
返回值
返回值 | 类型 |
---|---|
true: 正在播放 false:未播 | boolean |
4.3.15 设置截图监听事件
方法名
setNYSnapshotCallback(INYPlayerSnapshotCallback callback)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
callback | 是 | INYPlayerSnapshotCallback | 截图回调,INYPlayerSnapshotCallback,可以为NULL |
返回值
无
4.3.16 NYPlayerConfig属性
4.3.16.1 创建NYPlayerConfig实例
方法名
NYPlayerConfig()
参数
无
返回值
返回值 | 类型 |
---|---|
mNYPlayerConfig | NYPlayerConfig |
4.3.16.2 重连次数
方法名
setReconnectCount(int reconnectCount)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
reconnectCount | 是 | int | 重连次数 |
返回值
无
4.3.16.3 重连间隔
方法名
setReconnectInterval(int reconnectInterval)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
reconnectInterval | 是 | int | 重连时间间隔 |
返回值
无
4.3.16.4 设置缓冲时间
方法名
setCacheTime(int cacheTime)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
cacheTime | 是 | int | 缓存时间 |
返回值
无
4.3.16.5 设置循环播放
方法名
setLoop(boolean loop)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
loop | 是 | boolean | true:开启;false:关闭 |
返回值
无
4.3.16.6 设置自动播放
方法名
setAutoPlay(boolean autoPlay)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
autoPlay | 是 | boolean | true:开启;false:关闭 |
返回值
无
4.3.16.7 设置最大缓冲大小
方法名
setMaxBufferSize(long maxBufferSize)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
maxBufferSize | 是 | long | 缓存大小,单位kb |
返回值
无
4.3.16.8 设置环路过滤
方法名
setSkipLoopFilter(boolean skipLoopFilter)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
skipLoopFilter | 是 | boolean | true:开启;false:关闭 |
返回值
无
4.3.16.9 设置自动旋转
方法名
setAutoRotate(boolean autoRotate)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
autoRotate | 是 | boolean | true:开启;false:关闭 |
返回值
无
4.3.16.10 设置硬解播放
方法名
setDXVA(boolean DXVA)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
DXVA | 是 | boolean | true:开启;false:关闭 |
返回值
无
4.3.16.11 设置允许丢帧
方法名
setEnableFrameDrop(boolean enableFrameDrop)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
enableFrameDrop | 是 | boolean | true:开启;false:关闭 |
返回值
无
4.3.16.12 设置使用opensles解码音频
方法名
setOpenSlesAudioDecode(boolean openSlesAudioDecode)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
openSlesAudioDecode | 是 | boolean | true:开启;false:关闭 |
返回值
无
4.3.16.13 设置播放前缓存大小
方法名
setProbeSize(long probeSize)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
probeSize | 是 | long | 缓存大小,单位kb |
返回值
无
4.3.17 NYPlayerListener属性
4.3.17.1 视频流属性
方法名
isLiving(boolean isLiving)
参数
参数名 | 类型 | 说明 |
---|---|---|
isLiving | boolean | true:直播,fasle:点播 |
返回值
无
4.3.17.2 视频流信息
方法名
onVideoResolution(int width, int height,int i,int i1)
参数
参数名 | 类型 | 说明 |
---|---|---|
width | int | 宽度 |
height | int | 高度 |
i | int | |
i1 | int |
返回值
无
4.3.17.3 播放信息
方法名
onInfo(int what, int extra)
参数
参数名 | 类型 | 说明 |
---|---|---|
what | int | 状态码 |
extra | int | 状态信息 |
返回值
返回值 | 类型 |
---|---|
true/false | boolean |
4.3.17.4 播放到指定进度后的回调事件
方法名
onSeekComplete(long currentPosition)
参数
参数名 | 类型 | 说明 |
---|---|---|
currentPosition | long | 视频进度,单位:秒 |
返回值
无
4.3.17.5 缓冲进度
方法名
onBufferingUpdate(int progress)
参数
参数名 | 类型 | 说明 |
---|---|---|
progress | long | 缓冲进度,单位:% |
返回值
无
4.3.17.6 异常信息
方法名
onError(int what, int extra)
参数
参数名 | 类型 | 说明 |
---|---|---|
what | int | 错误码 |
extra | int | 错误信息 |
返回值
无
4.3.17.7 视频准备完成后回调
方法名
onPrepared()
参数
无
返回值
无
4.3.17.8 当前视频播放完后回调
方法名
onCompletion()
参数
无
返回值
无
4.3.18 I
4.3.18 INYPlayerSnapshotCallback属性
视频界面截图监听事件
4.3.18.1 截图后回调方法
方法名
onResult(String bitmapPath)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
bitmapPath | 是 | String | 截图在本地路径 |
返回值
无
5 版本更新记录
5.1 版本更新信息
版本 | 日期 | 更新内容 |
---|---|---|
V1.0 | 2022.10.29 | SDK首版发布 |
5.2重大版本升级说明
暂无
6 相关问题
- 接入时,安卓11或以上系统,遇到播放崩溃问题,在清单文件的application节点添加如下配置
java
android:allowNativeHeapPointerTagging="false"
- 如遇到使用截图监听功能时,app崩溃或异常,请在清单文件中添加如下权限
java
//1、添加权限
<uses-permission android:name="MediaStore.Images.Media.INTERNAL_CONTENT_URI"/>
<uses-permission android:name="MediaStore.Images.Media.EXTERNAL_CONTENT_URI"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
//2、在application中添加该句
android:requestLegacyExternalStorage="true"