LinkVisual Media SDK(Android) v2.7.0-ilop
Public Member Functions | Static Public Attributes | List of all members
com.aliyun.iotx.linkvisual.media.player.LVVodPlayer Class Reference

点播播放器 More...

Public Member Functions

 LVVodPlayer (final Context context)
 
LVPlayerCode setDataSource (String url)
 
LVPlayerCode setDataSource (String url, boolean isEncrypted, String decryptIvBase64, String decryptKeyBase64)
 
LVPlayerCode setDataSource (String url, boolean isEncrypted, String decryptIvBase64, String decryptKeyBase64, String stunInfo)
 
LVPlayerCode setDataSourceByLocalRecordFileName (String iotId, String fileName)
 
LVPlayerCode setDataSourceByLocalRecordFileName (String iotId, String fileName, long seekToPositionInMs)
 
LVPlayerCode setDataSourceByLocalRecordTime (String iotId, int beginTimeInS, int endTimeInS, long seekToPositionInMs, int recordType)
 
LVPlayerCode setDataSourceByCloudRecordFileName (String iotId, String fileName)
 
LVPlayerCode setDataSourceByCloudRecordFileName (String iotId, String fileName, long seekToPositionInMs)
 
LVPlayerCode setPlayWhenReady (boolean playWhenReady)
 
LVPlayerCode start ()
 
LVPlayerCode stop ()
 
LVPlayerCode resume ()
 
LVPlayerCode pause ()
 
LVPlayerCode reset ()
 
LVPlayerCode release ()
 
LVPlayerCode setPlaybackSpeed (float speed)
 
LVPlayerCode seekTo (long positionInMs)
 
LVPlayerCode playFrameByFrame ()
 
long getDurationMs ()
 
long getCurrentPositionMs ()
 
LVPlayerCode setDecoderStrategy (LVDecoderStrategy decoderStrategy)
 
LVDecoderType getDecoderStrategy ()
 
LVPlayerCode mute (boolean isMute)
 
boolean isMute ()
 
LVPlayerCode audioFocus ()
 
boolean isAudioFocus ()
 
int getVideoWidth ()
 
int getVideoHeight ()
 
LVPlayerCode setTextureView (TextureView textureView)
 
LVPlayerCode setTextureView (TextureView textureView, LVVideoRotationMode rotationMode)
 
LVVideoRotationMode getWindowRotationMode ()
 
LVPlayerCode setVideoScalingMode (LVVideoScalingMode videoScalingMode)
 
LVPlayerCode setPlayerStoppedDrawingMode (LVPlayerStoppedDrawingMode playerStoppedDrawingMode)
 
Bitmap snapShot ()
 
Bitmap snapShot (LVVideoRotationMode rotationMode)
 
LVPlayerCode snapShotToFile (String jpegFilePath)
 
LVPlayerCode snapShotToFile (String jpegFilePath, LVVideoRotationMode rotationMode)
 
LVPlayerCode startRecordingContent (String contentFilePath)
 
LVPlayerCode stopRecordingContent ()
 
long getCurrentRecordingContentDurationInMs ()
 
LVPlayerState getPlayerState ()
 
LVStreamConnectType getStreamConnectType ()
 
LVPlayInfo getCurrentPlayInfo ()
 
LVVodPlayerType getVodPlayerType ()
 
LVPlayerCode setPlayerListener (ILVPlayerListener listener)
 
LVPlayerCode setVodCompletionListener (ILVVodPlayerCompletionListener listener)
 
LVPlayerCode setUseExternalRender (boolean useExternalVideoRender, boolean useExternalAudioRender, ILVPlayerExternalRenderListener listener)
 
Yuv420pFrame getYuv420pFrame ()
 
Yuv420pFrame getYuv420pFrame (LVVideoRotationMode rotationMode)
 
String getStatisticsInfo ()
 
Yuv420pFrame lockAndGetYuv420pFrame (LVVideoRotationMode rotationMode)
 
LVPlayerCode unlockYuv420pFrame ()
 
LVPlayerCode setPlayerStreamListener (boolean isOnlyStream, ILVPlayerStreamListener listener)
 
LVPlayerCode setAudioStreamInCall (boolean useInCallMode)
 
void setSupportExternalHeadset (boolean supportExternalHeadset)
 
boolean isSupportExternalHeadset ()
 

Static Public Attributes

static final String TAG = "LVVodPlayer"
 

Detailed Description

点播播放器

Constructor & Destructor Documentation

◆ LVVodPlayer()

com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.LVVodPlayer ( final Context  context)
inline

创建点播播放器

Parameters
contextApplication context

Member Function Documentation

◆ audioFocus()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.audioFocus ( )
inline

当前播放器获取音频焦点 仅有持有焦点的播放器允许播放音频, 至多只有一个播放器可以获取焦点 当存在多路观看(如NVR多分屏)场景时, 请交由用户来调用关心的那一路播放器的audioFocus()接口来完成多路播放器之间声音播放的切换

Returns
是否操作成功

◆ getCurrentPlayInfo()

LVPlayInfo com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getCurrentPlayInfo ( )
inline

获取播放器当前的帧率/码率等信息 需在LVPlayerState#STATE_READY时调用有效

Returns
playInfo 帧率/码率信息

◆ getCurrentPositionMs()

long com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getCurrentPositionMs ( )
inline

获取当前播放进度, 相对于开始位置的偏移量 需在LVPlayerState#STATE_READY时调用有效

Returns
单位ms

◆ getCurrentRecordingContentDurationInMs()

long com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getCurrentRecordingContentDurationInMs ( )
inline

获取当前录制的视频时长 注意, 实际内容时长可能小于总的录制时间

Returns
单位ms

◆ getDecoderStrategy()

LVDecoderType com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getDecoderStrategy ( )
inline

获取当前流的解码器类型, 仅在播放器开播后有效

Returns
软解或硬解

◆ getDurationMs()

long com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getDurationMs ( )
inline

获取点播视频总时长 需在LVPlayerState#STATE_READY时调用有效

Returns
单位ms

◆ getPlayerState()

LVPlayerState com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getPlayerState ( )
inline

获取播放状态

Returns
状态枚举

◆ getStatisticsInfo()

String com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getStatisticsInfo ( )
inline

获取播放统计数据

Returns
统计数据的json字符串

◆ getStreamConnectType()

LVStreamConnectType com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getStreamConnectType ( )
inline

获取播放器当前流的连接类型 需在播放器状态为LVPlayerState#STATE_READY后过5S调用能准确反映当前使用的流类型

Returns
P2P直连/P2P穿透/云转

◆ getVideoHeight()

int com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getVideoHeight ( )
inline

获取视频高

Returns
高值像素点

◆ getVideoWidth()

int com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getVideoWidth ( )
inline

获取视频宽

Returns
宽值像素点

◆ getVodPlayerType()

LVVodPlayerType com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getVodPlayerType ( )
inline

获取当前播放器点播类型

Returns
设备卡录像点播播放器或云存录像播放器

◆ getWindowRotationMode()

LVVideoRotationMode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getWindowRotationMode ( )
inline

获取窗口画面旋转方向, 与setTextureView(TextureView, LVVideoRotationMode)时传入的一致

Returns
画面旋转角度

◆ getYuv420pFrame() [1/2]

Yuv420pFrame com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getYuv420pFrame ( )
inline

获取当前最新的YUV420p数据帧 该接口请不要在ILVPlayerExternalRenderListener#onVideoFrameUpdate(int, int, long)回调中执行, 否则会引起死锁

Returns
YUV420p数据帧
Deprecated:
建议使用lockAndGetYuv420pFrame(LVVideoRotationMode)unlockYuv420pFrame来替代

◆ getYuv420pFrame() [2/2]

Yuv420pFrame com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.getYuv420pFrame ( LVVideoRotationMode  rotationMode)
inline

获取当前最新的YUV420p数据帧 该接口请不要在ILVPlayerExternalRenderListener#onVideoFrameUpdate(int, int, long)回调中执行, 否则会引起死锁

Parameters
rotationMode画面旋转角度
Returns
YUV420p数据帧
Deprecated:
建议使用lockAndGetYuv420pFrame(LVVideoRotationMode)unlockYuv420pFrame来替代

◆ isAudioFocus()

boolean com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.isAudioFocus ( )
inline

当前播放器是否有音频焦点

Returns
焦点与否

◆ isMute()

boolean com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.isMute ( )
inline

当前播放器是否静音

Returns
静音与否 非1倍速下播放时始终静音, 始终返回true

◆ isSupportExternalHeadset()

boolean com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.isSupportExternalHeadset ( )
inline

当前是否开启对蓝牙和有线耳机外设的支持

Returns
是否开启对蓝牙和有线耳机外设的支持

◆ lockAndGetYuv420pFrame()

Yuv420pFrame com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.lockAndGetYuv420pFrame ( LVVideoRotationMode  rotationMode)
inline

锁定并获取当前最新的YUV420p数据帧 该接口请不要在ILVPlayerExternalRenderListener#onVideoFrameUpdate(int, int, long)回调中执行, 否则会引起死锁

Returns
YUV420p数据帧

◆ mute()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.mute ( boolean  isMute)
inline

播放静音

Parameters
isMute静音与否
Returns
是否操作成功

◆ pause()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.pause ( )
inline

暂停播放

Returns
是否操作成功

◆ playFrameByFrame()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.playFrameByFrame ( )
inline

逐帧播放, 恢复请调用resume()

Returns
是否操作成功

◆ release()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.release ( )
inline

释放播放器

Returns
是否操作成功

◆ reset()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.reset ( )
inline

重置数据源, 重置后需要重新设置数据源

Returns
是否操作成功

◆ resume()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.resume ( )
inline

恢复播放

Returns
是否操作成功

◆ seekTo()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.seekTo ( long  positionInMs)
inline

seek到指定位置播放 播放器状态将会变为LVPlayerState#STATE_BUFFERING, seek完成后再变为LVPlayerState#STATE_READY

Parameters
positionInMs单位ms
Returns
是否操作成功

◆ setAudioStreamInCall()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setAudioStreamInCall ( boolean  useInCallMode)
inline

选择是否点播的音频通过通话模式播放声音 播放器默认点播采用多媒体模式播放声音

Parameters
useInCallMode音频是否通过通话模式播放
Returns
操作是否成功

◆ setDataSource() [1/3]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDataSource ( String  url)
inline

设置数据源

Parameters
url支持rtmp点播地址及hls点播地址
Returns
是否操作成功

◆ setDataSource() [2/3]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDataSource ( String  url,
boolean  isEncrypted,
String  decryptIvBase64,
String  decryptKeyBase64 
)
inline

设置基于物联网智能视频服务接入的摄像头卡录像点播数据源

Parameters
urlrtmp点播地址
isEncrypted是否开启加密, 开启后仅适配物联网视频平台提供的rtmp地址
decryptIvBase64解密向量(base64加密后的字符串)
decryptKeyBase64解密密钥(base64加密后的字符串)
Returns
是否操作成功

◆ setDataSource() [3/3]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDataSource ( String  url,
boolean  isEncrypted,
String  decryptIvBase64,
String  decryptKeyBase64,
String  stunInfo 
)
inline

设置基于物联网智能视频服务接入的摄像头卡录像点播数据源

Parameters
urlrtmp点播地址
isEncrypted是否开启加密, 开启后仅适配物联网视频平台提供的rtmp地址
decryptIvBase64解密向量(base64加密后的字符串)
decryptKeyBase64解密密钥(base64加密后的字符串)
stunInfop2p服务信息(用于与设备建立P2P通道以降低云转发流量)
Returns
是否操作成功

◆ setDataSourceByCloudRecordFileName() [1/2]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDataSourceByCloudRecordFileName ( String  iotId,
String  fileName 
)
inline

设置基于生活物联网平台接入的摄像头云存录像点播数据源

Parameters
iotId设备iotId
fileName云存录像文件名
Returns
是否操作成功

◆ setDataSourceByCloudRecordFileName() [2/2]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDataSourceByCloudRecordFileName ( String  iotId,
String  fileName,
long  seekToPositionInMs 
)
inline

设置基于生活物联网平台接入的摄像头云存录像点播数据源

Parameters
iotId设备iotId
fileName云存录像文件名
seekToPositionInMs相对于文件头的初始偏移量, 单位ms
Returns
是否操作成功

◆ setDataSourceByLocalRecordFileName() [1/2]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDataSourceByLocalRecordFileName ( String  iotId,
String  fileName 
)
inline

设置基于生活物联网平台接入的摄像头卡录像点播数据源(按文件)

Parameters
iotId设备的iotId
fileName录像文件名
Returns
是否操作成功

◆ setDataSourceByLocalRecordFileName() [2/2]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDataSourceByLocalRecordFileName ( String  iotId,
String  fileName,
long  seekToPositionInMs 
)
inline

设置基于生活物联网平台接入的摄像头卡录像点播数据源(按文件)

Parameters
iotId设备的iotId
fileName录像文件名
seekToPositionInMs相对文件头的初始偏移量, 单位ms
Returns
是否操作成功

◆ setDataSourceByLocalRecordTime()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDataSourceByLocalRecordTime ( String  iotId,
int  beginTimeInS,
int  endTimeInS,
long  seekToPositionInMs,
int  recordType 
)
inline

设置基于生活物联网平台接入的摄像头卡录像点播数据源(按时间)

Parameters
iotId设备iotId
beginTimeInS录像开始时间, 1970年1月1日开始的秒数
endTimeInS录像结束时间, 1970年1月1日开始的秒数
seekToPositionInMs相对于beginTime的播放偏移量, 单位为ms
recordType录像类型: 0(表示计划录像);1(表示报警录像)
Returns
是否操作成功

◆ setDecoderStrategy()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setDecoderStrategy ( LVDecoderStrategy  decoderStrategy)
inline

设置解码器策略, 全局生效 默认使用硬解码优先

Parameters
decoderStrategy支持硬解码优先和强制软解码两种模式
Returns
是否操作成功

◆ setPlaybackSpeed()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setPlaybackSpeed ( float  speed)
inline

设置播放速率, 如数据源为设备录像点播则需要设备支持倍速功能 须在LVPlayerState#STATE_BUFFERINGLVPlayerState#STATE_READY时调用有效,仅本次播放有效 非1倍速率下会关闭声音播放

Parameters
speed只支持1/16、1/8、1/4、1/2、1、2、4、8、16倍速
Returns
是否操作成功

◆ setPlayerListener()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setPlayerListener ( ILVPlayerListener  listener)
inline

设置播放器监听

Parameters
listener包括状态/错误等监听的回调对象
Returns
是否操作成功

◆ setPlayerStoppedDrawingMode()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setPlayerStoppedDrawingMode ( LVPlayerStoppedDrawingMode  playerStoppedDrawingMode)
inline

设置播放停止时画面绘制策略

Parameters
playerStoppedDrawingMode支持保留最后一帧和强制黑色两种模式, 默认强制黑色
Returns
是否操作成功

◆ setPlayerStreamListener()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setPlayerStreamListener ( boolean  isOnlyStream,
ILVPlayerStreamListener  listener 
)
inline

设置播放器原始码流回调, 包括音/视频帧, 单帧大小不超过1MB。该接口为高级特性。一般使用无需关注。

Parameters
isOnlyStream是否仅取原始流,开启后将不启用内置的解码和渲染,需要使用方自行完成解码渲染
listener原始音视频数据回调(视频H264/H265,音频G711/AAC/PCM)
Returns
操作是否成功

◆ setPlayWhenReady()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setPlayWhenReady ( boolean  playWhenReady)
inline

设置是否在数据就绪后自动播放, 仅对HLS云存储录像播放生效

Parameters
playWhenReady是否自动播放,默认为true
Returns
是否操作成功

◆ setSupportExternalHeadset()

void com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setSupportExternalHeadset ( boolean  supportExternalHeadset)
inline

设置是否开启对蓝牙和有线耳机外设的支持, 开启后优先使用外设进行录放音, 仅在点播的音频通过通话模式播放声音时有效,默认支持

Parameters
supportExternalHeadset是否开启对蓝牙和有线耳机外设的支持

◆ setTextureView() [1/2]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setTextureView ( TextureView  textureView)
inline

设置视频渲染窗口

Parameters
textureView窗口view
Returns
是否操作成功

◆ setTextureView() [2/2]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setTextureView ( TextureView  textureView,
LVVideoRotationMode  rotationMode 
)
inline

设置视频渲染窗口

Parameters
textureView窗口view
rotationMode画面旋转角度
Returns
是否操作成功

◆ setUseExternalRender()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setUseExternalRender ( boolean  useExternalVideoRender,
boolean  useExternalAudioRender,
ILVPlayerExternalRenderListener  listener 
)
inline

设置外部渲染开关及相应的数据回调。该接口为高级特性。一般使用无需关注。

Parameters
useExternalVideoRender是否开启外部渲染, 开启后内部将不再绘制, 请在渲染线程中调用getYuv420pFrame()接口获取YUV420p数据渲染
useExternalAudioRender是否开启外部音频播放, 开启后内部将不再播放音频
listener视频渲染通知及音频数据回调, 设置后始终回调YUV数据及音频PCM数据
Returns
是否操作成功

◆ setVideoScalingMode()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setVideoScalingMode ( LVVideoScalingMode  videoScalingMode)
inline

设置画面缩放模式

Parameters
videoScalingMode支持保持宽高比和强制拉伸两种模式
Returns
是否操作成功

◆ setVodCompletionListener()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.setVodCompletionListener ( ILVVodPlayerCompletionListener  listener)
inline

设置点播完成监听

Parameters
listener播放完成监听的回调对象
Returns
是否操作成功

◆ snapShot() [1/2]

Bitmap com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.snapShot ( )
inline

窗口截图

Returns
bitmap对象, 如果未播放则返回null

◆ snapShot() [2/2]

Bitmap com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.snapShot ( LVVideoRotationMode  rotationMode)
inline

窗口截图

Parameters
rotationMode图片旋转角度
Returns
bitmap对象, 如果未播放则返回null

◆ snapShotToFile() [1/2]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.snapShotToFile ( String  jpegFilePath)
inline

截图到文件

Parameters
jpegFilePath保存截图jpeg的文件绝对路径
Returns
是否操作成功

◆ snapShotToFile() [2/2]

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.snapShotToFile ( String  jpegFilePath,
LVVideoRotationMode  rotationMode 
)
inline

截图到文件

Parameters
jpegFilePath保存截图jpeg的文件绝对路径
rotationMode画面旋转角度
Returns
是否操作成功

◆ start()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.start ( )
inline

开启播放

Returns
是否操作成功

◆ startRecordingContent()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.startRecordingContent ( String  contentFilePath)
inline

开始录制当前播放内容, 生成MPEG-4格式转存到指定的文件中 需在LVPlayerState#STATE_READY时调用有效

Parameters
contentFilePath文件绝对路径, 文件名后缀必须为.mp4
Returns
是否操作成功

◆ stop()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.stop ( )
inline

停止播放

Returns
是否操作成功

◆ stopRecordingContent()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.stopRecordingContent ( )
inline

停止记录播放内容 stop()/release()内部会主动调用该接口, 如已调用以上接口, 则该接口无需再主动调用

Returns
是否操作成功

◆ unlockYuv420pFrame()

LVPlayerCode com.aliyun.iotx.linkvisual.media.player.LVVodPlayer.unlockYuv420pFrame ( )
inline

解除锁定

Returns
是否操作成功