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)

参数

参数名必选类型说明
licenceString密钥
callbackIAuthInfoCallback验证信息回调,可以为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)

参数

参数名必选类型说明
contextContext上下文
handlerHandler消息处理

返回值

返回值类型
实例NYPlayer

4.3.2 配置播放器

方法名

setConfig(NYPlayerConfig config)

参数

参数名必选类型说明
configVzanPlayerConfig播放器配置项,参考NYPlayerConfig

返回值

4.3.3 设置播放器回调

方法名

setPlayerListener(NYPlayerListener listener)

参数

参数名必选类型说明
listenerNYPlayerListener播放器回调,参考NYPlayerListener

返回值

4.3.4 设置视图

方法名

setPlayerView(NYPlayerTextureView view)

参数

参数名必选类型说明
viewNYPlayerTextureView视频渲染,NYPlayerTextureView

返回值

4.3.5 设置播放源

方法名

setVideoPath(String url)

参数

参数名必选类型说明
urlString播放地址

返回值

4.3.6 开始/恢复播放

方法名

start()

参数

返回值

4.3.7 切换播放源

方法名

changePlaySource(String url)

参数

参数名必选类型说明
urlString播放地址

返回值

4.3.8 重置播放

方法名

reset()

参数

返回值

4.3.9 结束播放

方法名

stop()

参数

返回值

4.3.10 暂停播放

方法名

pause()

参数

返回值

4.3.11跳转进度

方法名

seekTo(long time)

参数

参数名必选类型说明
timelong进度时间

返回值

4.3.12 释放播放器

方法名

release()

参数

返回值

4.3.14 获取播放状态

方法名

boolean isPlaying()

参数

返回值

返回值类型
true: 正在播放 false:未播boolean

4.3.15 设置截图监听事件

方法名

setNYSnapshotCallback(INYPlayerSnapshotCallback callback)

参数

参数名必选类型说明
callbackINYPlayerSnapshotCallback截图回调,INYPlayerSnapshotCallback,可以为NULL

返回值

4.3.16 NYPlayerConfig属性

4.3.16.1 创建NYPlayerConfig实例

方法名

NYPlayerConfig()

参数

返回值

返回值类型
mNYPlayerConfigNYPlayerConfig
4.3.16.2 重连次数

方法名

setReconnectCount(int reconnectCount)

参数

参数名必选类型说明
reconnectCountint重连次数

返回值

4.3.16.3 重连间隔

方法名

setReconnectInterval(int reconnectInterval)

参数

参数名必选类型说明
reconnectIntervalint重连时间间隔

返回值

4.3.16.4 设置缓冲时间

方法名

setCacheTime(int cacheTime)

参数

参数名必选类型说明
cacheTimeint缓存时间

返回值

4.3.16.5 设置循环播放

方法名

setLoop(boolean loop)

参数

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

返回值

4.3.16.6 设置自动播放

方法名

setAutoPlay(boolean autoPlay)

参数

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

返回值

4.3.16.7 设置最大缓冲大小

方法名

setMaxBufferSize(long maxBufferSize)

参数

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

返回值

4.3.16.8 设置环路过滤

方法名

setSkipLoopFilter(boolean skipLoopFilter)

参数

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

返回值

4.3.16.9 设置自动旋转

方法名

setAutoRotate(boolean autoRotate)

参数

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

返回值

4.3.16.10 设置硬解播放

方法名

setDXVA(boolean DXVA)

参数

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

返回值

4.3.16.11 设置允许丢帧

方法名

setEnableFrameDrop(boolean enableFrameDrop)

参数

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

返回值

4.3.16.12 设置使用opensles解码音频

方法名

setOpenSlesAudioDecode(boolean openSlesAudioDecode)

参数

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

返回值

4.3.16.13 设置播放前缓存大小

方法名

setProbeSize(long probeSize)

参数

参数名必选类型说明
probeSizelong缓存大小,单位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)

参数

参数名必选类型说明
bitmapPathString截图在本地路径

返回值

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"