Skip to content

播放器SDK使用说明 ​

1 产品简介 ​

本文档为了指导开发者快速接入Android 相关SDK,默认读者已经熟悉Android Studio的基本使用方法,以及具有一定的编程知识基础等。

1.1 主要功能 ​

具备视频播放、直播地址拉流等功能。

2 接入流程 ​

  1. 联系相关工作人员开通权限;
  2. 获取SDK授权;
  3. 下载SDK;
  4. 按照说明文档接入。

3 使用说明 ​

3.1 开发环境 ​

plain
Android SDK Tools: android-sdk_26.0.|+ 
minSdkVersion: 21 
targetSdkVersion: 28
Android Studio

4 接入指南 ​

4.1 快速集成 ​

4.1.1 下载SDK ​

文件名称下载地址
NYPlayerSDKhttps://nyfs.oss.nuoyun.tv/Download/Soft/SDK/NYPlayer_SDK_Android.aar
NYPlayerDemohttps://nyfs.oss.nuoyun.tv/Download/Soft/SDK/NYPlayer_Demo_Android.zip

4.1.2 导入流程 ​

将下载好的NYPlayer-release.aar文件放到项目文件夹libs中,在app->build.gradle中如下图添加导入aar文件,详情参考demo。 img

4.1.3 配置权限 ​

在gradle工程中找到Android系统文件AndroidManifest.xml,增加项目网络、系统设置相关权限,如下图: img

权限描述用途
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()

参数:

无

返回值

返回值类型说明
AuthStatusAuthStatus授权状态

授权状态说明

返回值说明
AuthStatus.NYPlayerSDKAuthStatusUnKnow授权未知
AuthStatus.NYPlayerSDKAuthStatusSuccess授权有效
AuthStatus.NYPlayerSDKAuthStatusExpired授权过期
AuthStatus.NYPlayerSDKAuthStatusFail授权无效

4.2.3 IAuthInfoCallback属性 ​

4.2.3.1 licence授权回调 ​

方法名

onAuthInfo(AuthStatus status)

参数

返回值类型
statusAuthStatus

返回值

无

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()

参数

无

返回值

返回值类型
mNYPlayerConfigNYPlayerConfig
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是booleantrue:开启;false:关闭

返回值

无

4.3.16.6 设置自动播放 ​

方法名

setAutoPlay(boolean autoPlay)

参数

参数名必选类型说明
autoPlay是booleantrue:开启;false:关闭

返回值

无

4.3.16.7 设置最大缓冲大小 ​

方法名

setMaxBufferSize(long maxBufferSize)

参数

参数名必选类型说明
maxBufferSize是long缓存大小,单位kb

返回值

无

4.3.16.8 设置环路过滤 ​

方法名

setSkipLoopFilter(boolean skipLoopFilter)

参数

参数名必选类型说明
skipLoopFilter是booleantrue:开启;false:关闭

返回值

无

4.3.16.9 设置自动旋转 ​

方法名

setAutoRotate(boolean autoRotate)

参数

参数名必选类型说明
autoRotate是booleantrue:开启;false:关闭

返回值

无

4.3.16.10 设置硬解播放 ​

方法名

setDXVA(boolean DXVA)

参数

参数名必选类型说明
DXVA是booleantrue:开启;false:关闭

返回值

无

4.3.16.11 设置允许丢帧 ​

方法名

setEnableFrameDrop(boolean enableFrameDrop)

参数

参数名必选类型说明
enableFrameDrop是booleantrue:开启;false:关闭

返回值

无

4.3.16.12 设置使用opensles解码音频 ​

方法名

setOpenSlesAudioDecode(boolean openSlesAudioDecode)

参数

参数名必选类型说明
openSlesAudioDecode是booleantrue:开启;false:关闭

返回值

无

4.3.16.13 设置播放前缓存大小 ​

方法名

setProbeSize(long probeSize)

参数

参数名必选类型说明
probeSize是long缓存大小,单位kb

返回值

无

4.3.17 NYPlayerListener属性 ​

4.3.17.1 视频流属性 ​

方法名

isLiving(boolean isLiving)

参数

参数名类型说明
isLivingbooleantrue:直播,fasle:点播

返回值

无

4.3.17.2 视频流信息 ​

方法名

onVideoResolution(int width, int height,int i,int i1)

参数

参数名类型说明
widthint宽度
heightint高度
iint
i1int

返回值

无

4.3.17.3 播放信息 ​

方法名

onInfo(int what, int extra)

参数

参数名类型说明
whatint状态码
extraint状态信息

返回值

返回值类型
true/falseboolean
4.3.17.4 播放到指定进度后的回调事件 ​

方法名

onSeekComplete(long currentPosition)

参数

参数名类型说明
currentPositionlong视频进度,单位:秒

返回值

无

4.3.17.5 缓冲进度 ​

方法名

onBufferingUpdate(int progress)

参数

参数名类型说明
progresslong缓冲进度,单位:%

返回值

无

4.3.17.6 异常信息 ​

方法名

onError(int what, int extra)

参数

参数名类型说明
whatint错误码
extraint错误信息

返回值

无

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.02022.10.29SDK首版发布

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"