public interface IQHVCPlayerAdvanced extends IQHVCPlayer
Created by guohailiang on 2017/5/16.
IQHVCPlayer.Error, IQHVCPlayer.ErrorExtra, IQHVCPlayer.Info, IQHVCPlayer.InfoExtra, IQHVCPlayer.MediaInfoKey, IQHVCPlayer.OnBufferingEventListener, IQHVCPlayer.OnBufferingUpdateListener, IQHVCPlayer.OnCompletionListener, IQHVCPlayer.OnErrorListener, IQHVCPlayer.OnInfoListener, IQHVCPlayer.OnPreparedListener, IQHVCPlayer.onProgressChangeListener, IQHVCPlayer.OnSeekCompleteListener, IQHVCPlayer.OnVideoSizeChangedListener, IQHVCPlayer.PlayType
Modifier and Type | Field and Description |
---|---|
static int |
CLOUD_CONTROL_MODE_CARD_REC |
static int |
CLOUD_CONTROL_MODE_DEFAULT |
static int |
CLOUD_CONTROL_MODE_LOW_DELAY |
static java.lang.String |
KEY_OPTION_BUFFERING_EVENT_NOTIFY_DELAY_MS
Integer 缓冲事件 延迟通知时间 (默认不延迟) |
static java.lang.String |
KEY_OPTION_CLOUD_CONTROL_MODE
|
static java.lang.String |
KEY_OPTION_DECODE_MODE
|
static java.lang.String |
KEY_OPTION_DECRYPT_KEY
String 解密key |
static java.lang.String |
KEY_OPTION_DECRYPT_TYPE
Integer 解密类型 eg: QHVC_DECRYPT_TYPE_FFMPEG |
static java.lang.String |
KEY_OPTION_ENABLE_ANALYZE_SEI
Boolean 开启解析sei |
static java.lang.String |
KEY_OPTION_FORCE_P2P
Boolean 播放是否强制使用p2p |
static java.lang.String |
KEY_OPTION_HLS_REFERER
String HTTP Live Streaming referer. |
static java.lang.String |
KEY_OPTION_MAX_ANALYZE_DURATION
Integer 打开音视频时,最大探测时长 |
static java.lang.String |
KEY_OPTION_MUTE
Boolean 开始播放的时候是否静音 |
static java.lang.String |
KEY_OPTION_PLAY_MODE
IQHVCPlayerAdvanced.PlayMode 设置播放器播放模式 |
static java.lang.String |
KEY_OPTION_POSITION
Integer 只适用于点播,设置点播开始的位置(单位: 毫秒) |
static java.lang.String |
KEY_OPTION_POSITION_ACCURATE
Boolean 只适用于点播,设置点播开始的位置--是否为精确seek |
static java.lang.String |
KEY_OPTION_PREVIEW_DURATION
Integer 预览时长. |
static java.lang.String |
KEY_OPTION_RENDER_MODE
IQHVCPlayerAdvanced.RenderMode 播放器渲染模式 |
static java.lang.String |
KEY_OPTION_SCHEDULE_ENCODE_TYPE
String 调度请求视频源 编码类型 支持设置"h264" 或 "h265" 默认:"h265" |
static java.lang.String |
KEY_OPTION_SCHEDULE_URL
String 调度地址,需要使用自定义的调度地址时使用 |
static java.lang.String |
KEY_OPTION_SESSION_ID
String session id 如果设置这个值,需要保证每次播放, 这个值是唯一的 |
static java.lang.String |
KEY_OPTION_SRC_OUTSIDE
Integer 外部推数据模式 0:player获取数据 1:外部推数据进来 |
static java.lang.String |
KEY_OPTION_STREAM_TYPE
Constants.LiveType 推拉流类型: 纯音频、纯视频或音视频 |
static java.lang.String |
KEY_OPTION_TRANSPORT_PROTOCOL
Integer 传输协议 0:udp 1:tcp |
static int |
LIVECLOUD_SMART_DECODE_MODE
智能解码模式.优先硬解码,若硬解码不支持,切换到软解码
getDecoderMode() |
static int |
LIVECLOUD_SOFT_DECODE_MODE
软解模式
getDecoderMode() |
static int |
PLAY_ERROR
播放出错
|
static int |
PLAY_INCOMING_CALL
来电话
|
static int |
PLAY_OTHER
其他错误
|
static int |
PLAY_OVER
直播结束
|
static java.lang.String |
PLAYER_CLASS_NAME |
static int |
PLAYMODE_FLUENCY
流畅模式
|
static int |
PLAYMODE_LIVE_IOT
IOT
|
static int |
PLAYMODE_LOWLATENCY
低延迟模式
|
static int |
QHVC_DECRYPT_TYPE_DISHI |
static int |
QHVC_DECRYPT_TYPE_FFMPEG
解密类型: 默认
|
static int |
QHVC_DECRYPT_TYPE_SHUIDI |
static java.lang.String |
RECORDER_FORMAT_GIF |
static java.lang.String |
RECORDER_FORMAT_MOV
Deprecated.
|
static java.lang.String |
RECORDER_FORMAT_MP4 |
static int |
RENDER_MODE_FULL
如果视频尺寸和显示视窗尺寸不一致,图像拉伸后填满视窗
|
static int |
RENDER_MODE_IN
在保证视频宽高比的前提下,将视频进行横向或纵向填满。(可能会留黑边)
|
static int |
RENDER_MODE_OUT
在保持视频宽高比的前提下,按照显示视窗的比例进行周边裁剪后填满视窗。
|
static int |
USER_CLOSE
用户主动关闭
|
ERROR_EXTRA_EMPTY, ERROR_EXTRA_FORMAT_NOT_SUPPORT, ERROR_EXTRA_PLAY_CONNECT_FAILED, ERROR_EXTRA_PLAY_JPLAYER_OPEN_FAILED, ERROR_EXTRA_PLAY_OPEN_URL_FAILED, ERROR_EXTRA_PLAY_SET_SESSION_FAILED, ERROR_EXTRA_PLAY_SN_FAILED, ERROR_EXTRA_PLAY_SUBSCRIBE_FAILED, ERROR_EXTRA_PLAY_UNSUPPORT_HARDWARE_DECODE, ERROR_EXTRA_PREPARE_DISPATCH_FAILED, ERROR_EXTRA_RECORD_ERROR, ERROR_EXTRA_RECORD_FILE_ERROR, ERROR_EXTRA_UNKNOW, ERROR_FILE_NOT_OPEN, ERROR_FORMATNOTSUPPORT, ERROR_INVALID_PARAM, ERROR_IO_EXCEPTION, ERROR_NOT_SUPPORT_OPERATION, ERROR_OK, ERROR_PLAYER_PLUGIN_LOAD_FAILED, ERROR_PREPARE_FAILED, ERROR_SECURITY_EXCEPTION, ERROR_START_PLAY_FAILED, ERROR_STATE_AUTH_FAILED, ERROR_STATE_INVALID, ERROR_UNKNOW, INFO_CONNECT_INBACKGOURND, INFO_DEVICE_RENDER_ERR, INFO_DEVICE_RENDER_FIRST_FRAME, INFO_DEVICE_RENDER_QUERY_SURFACE, INFO_DEVICE_RENDER_SURFACE_CHANGE, INFO_EXTRA_EMPTY, INFO_EXTRA_H265_PLAY_FAILED, INFO_EXTRA_H265_START_PLAY, INFO_EXTRA_VIDEO_CACHE_FAILED, INFO_EXTRA_VIDEO_CACHE_SUCCESS, INFO_FILE_OPEN, INFO_LIVE_PLAY_FPS, INFO_LIVE_PLAY_SPEED, INFO_LIVE_PLAY_START, INFO_PLAY_H265, INFO_PLAYER_AV_MANAGER_INIT_SUCCESS, INFO_PLAYER_AV_NOT_SYNC, INFO_PLAYER_CLOSE, INFO_PLAYER_OPEN_SUCCESS, INFO_PLAYER_PLUGIN_DOWNLOAD_SUCCESS, INFO_PLAYER_PLUGIN_START_DOWNLOAD, INFO_RENDER_RESET_SURFACE, INFO_SEEK_FAILED, INFO_SESSION_CLOSED, INFO_VIDEO_CACHE, KEY_MEDIA_INFO_AUDIO_BITRATE_INT, KEY_MEDIA_INFO_AUDIO_CHANNEL_INT, KEY_MEDIA_INFO_AUDIO_FORMAT_STRING, KEY_MEDIA_INFO_AUDIO_SAMPLE_RATE_INT, KEY_MEDIA_INFO_BITRATE_INT, KEY_MEDIA_INFO_P2PTASK_CACHE_FINISH_BOOLEAN, KEY_MEDIA_INFO_P2PTASK_CACHE_SIZE_LONG, KEY_MEDIA_INFO_P2PTASK_CDN_DOWNLOAD_SIZE_LONG, KEY_MEDIA_INFO_P2PTASK_CDN_DOWNLOAD_SPEED_LONG, KEY_MEDIA_INFO_P2PTASK_DOWNLOAD_SPEED_LONG, KEY_MEDIA_INFO_P2PTASK_P2P_DOWNLOAD_SIZE_LONG, KEY_MEDIA_INFO_P2PTASK_P2P_DOWNLOAD_SPEED_LONG, KEY_MEDIA_INFO_P2PTASK_TOTAL_SIZE_LONG, KEY_MEDIA_INFO_REAL_URL_STRING, KEY_MEDIA_INFO_VIDEO_DECODE_PIX_FORMAT_STRING, KEY_MEDIA_INFO_VIDEO_DURATION_INT, KEY_MEDIA_INFO_VIDEO_FORMAT_STRING, KEY_MEDIA_INFO_VIDEO_FPS_INT, KEY_MEDIA_INFO_VIDEO_HEIGHT_INT, KEY_MEDIA_INFO_VIDEO_WIDTH_INT, PLAYTYPE_LIVE, PLAYTYPE_VOD
Modifier and Type | Method and Description |
---|---|
int |
addToGroup(int group)
多个播放器设为一组(数据流同步场景)
|
int |
disableRender(boolean isDisableRender)
设置播放器是否渲染图像
|
int |
enableBufferingLogic(boolean enable)
是否开启缓冲逻辑 (默认开启)
|
long |
getCurrentStreamTime()
获取主播直播流的流时间
|
int |
getDecoderMode()
获取当前使用的解码模式
|
long |
getLiveCurrentTimestamp()
获取当前帧时间戳 单位:ms(毫秒)
注: 目前只支持rtsp |
int |
getPropertyRotate()
获取视频的旋转属性
|
boolean |
isSystemMediaPlayer()
是否是系统播放器
|
int |
seekTo(int millis,
boolean accurate)
精确seekTo
|
int |
setDataSource(int playType,
java.lang.String[] rid,
java.lang.String[] sn,
int defaultIndex,
java.lang.String channelId,
java.lang.String sign,
java.util.Map<java.lang.String,java.lang.Object> options)
设置视频源 (用于传多个不同分辨率源,自适应分辨率.
|
int |
setDataSource(int playType,
java.lang.String sn,
java.lang.String channelId,
java.lang.String sign,
java.util.Map<java.lang.String,java.lang.Object> options)
设置视频源
|
void |
setFilterValues(float brightness,
float contrast,
float saturation)
设置视频画质增强filter属性
|
void |
setOnAudioPCMListener(IQHVCPlayerAdvanced.OnAudioPCMListener listener)
设置音频数据回调
|
int |
setOnAudioVolumeListener(IQHVCPlayerAdvanced.OnAudioVolumeListener listener,
long period)
设置音量回调(只支持直播)
收到INFO_LIVE_PLAY_START后调用
|
void |
setOnCustomizeSeiMetaListener(IQHVCPlayerAdvanced.OnCustomizeSeiMetaListener listener)
设置自定义sei meta回调
注意需要设置:
#setDataSource( int, String, String, String, Map 设置options.put(IQHVCPlayerAdvanced.KEY_OPTION_ENABLE_ANALYZE_SEI, Boolean.TRUE) |
void |
setOnPacketListener(IQHVCPlayerAdvanced.OnPacketListener listener)
设置音频/视频数据回调
|
void |
setOnPlayerNetStatsListener(IQHVCPlayerAdvanced.OnPlayerNetStatsListener listener)
流量统计信息回调(暂时只支持直播)
|
void |
setOnSeiMetaListener(IQHVCPlayerAdvanced.OnSeiMetaListener listener)
设置sei meta回调
注意需要设置:
#setDataSource( int, String, String, String, Map 设置options.put(IQHVCPlayerAdvanced.KEY_OPTION_ENABLE_ANALYZE_SEI, Boolean.TRUE) |
void |
setOnUserDefinedDataListener(IQHVCPlayerAdvanced.OnUserDefinedDataListener listener) |
int |
setPlayBackRate(float rate)
倍速播放
|
int |
setResolutionAdapt(boolean isAdapt,
IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
自动切换分辨率
|
void |
setSurfaceRenderListener(IQHVCPlayerAdvanced.SurfaceRenderListener surfaceRenderListener)
设置视频渲染高级接口,必须在
IQHVCPlayer.setDisplay(ILiveCloudDisplay) 前调用 |
boolean |
snapshot(IQHVCPlayerAdvanced.QHVCSnapshotListener snapshotListener)
截图,异步方法
|
boolean |
snapshot(java.lang.String path)
Deprecated.
|
int |
startRecorder(java.lang.String filePath,
java.lang.String fmt,
com.qihoo.livecloud.play.RecordConfig config,
IQHVCPlayerAdvanced.OnRecordListener listener)
开始录制
|
int |
stop(int reason)
停止播放
|
int |
stopRecorder()
结束录制(异步接口)
|
void |
switchResolution(int index,
IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
切换分辨率
此接口是异步的,从切换分辨率到切换完成 有5秒延迟 |
int |
switchResolutionStop(java.lang.String reason)
取消分辨率切换
|
int |
writeStream(long playerId,
int type,
long nativeData,
int size,
long pts,
long dts,
int iskey,
long nativeStreamCodecContext)
向播放器写入帧数据(推数据模式,目前仅支持relay)
|
getCacheDuration, getCurrentPosition, getDuration, getMediaInformation, getPlayerId, getRenderMode, getVolume, isMute, isPaused, isPlaying, pause, prepareAsync, release, seekTo, setDataSource, setDataSource, setDisplay, setMute, setOnBufferingEventListener, setOnBufferingUpdateListener, setOnCompletionListener, setOnErrorListener, setOnInfoListener, setOnPreparedListener, setOnProgressChangeListener, setOnSeekCompleteListener, setOnVideoSizeChangedListener, setScreenOnWhilePlaying, setSurface, setSurfaceViewport, setVolume, start, stop
static final java.lang.String PLAYER_CLASS_NAME
static final int PLAYMODE_FLUENCY
static final int PLAYMODE_LOWLATENCY
static final int PLAYMODE_LIVE_IOT
static final int LIVECLOUD_SOFT_DECODE_MODE
getDecoderMode()
static final int LIVECLOUD_SMART_DECODE_MODE
getDecoderMode()
static final int RENDER_MODE_IN
static final int RENDER_MODE_OUT
static final int RENDER_MODE_FULL
static final int USER_CLOSE
static final int PLAY_OVER
static final int PLAY_ERROR
static final int PLAY_INCOMING_CALL
static final int PLAY_OTHER
static final java.lang.String KEY_OPTION_POSITION
Integer
只适用于点播,设置点播开始的位置(单位: 毫秒)static final java.lang.String KEY_OPTION_POSITION_ACCURATE
Boolean
只适用于点播,设置点播开始的位置--是否为精确seekstatic final java.lang.String KEY_OPTION_SCHEDULE_URL
String
调度地址,需要使用自定义的调度地址时使用static final java.lang.String KEY_OPTION_RENDER_MODE
IQHVCPlayerAdvanced.RenderMode
播放器渲染模式static final java.lang.String KEY_OPTION_PLAY_MODE
IQHVCPlayerAdvanced.PlayMode
设置播放器播放模式
支持多种模式组合 eg: PLAYMODE_LOWLATENCY
| PLAYMODE_LIVE_IOT
static final java.lang.String KEY_OPTION_MUTE
Boolean
开始播放的时候是否静音static final java.lang.String KEY_OPTION_STREAM_TYPE
Constants.LiveType
推拉流类型: 纯音频、纯视频或音视频static final java.lang.String KEY_OPTION_PREVIEW_DURATION
Integer
预览时长. 单位: 毫秒static final java.lang.String KEY_OPTION_DECODE_MODE
static final java.lang.String KEY_OPTION_FORCE_P2P
Boolean
播放是否强制使用p2pstatic final java.lang.String KEY_OPTION_MAX_ANALYZE_DURATION
Integer
打开音视频时,最大探测时长
0 < max_analyze_duration < 20000
static final java.lang.String KEY_OPTION_TRANSPORT_PROTOCOL
Integer
传输协议 0:udp 1:tcp
static final java.lang.String KEY_OPTION_SESSION_ID
String
session id 如果设置这个值,需要保证每次播放, 这个值是唯一的static final java.lang.String KEY_OPTION_SCHEDULE_ENCODE_TYPE
String
调度请求视频源 编码类型 支持设置"h264" 或 "h265" 默认:"h265"static final java.lang.String KEY_OPTION_SRC_OUTSIDE
Integer
外部推数据模式 0:player获取数据 1:外部推数据进来static final java.lang.String KEY_OPTION_HLS_REFERER
String
HTTP Live Streaming referer. 默认不设置static final java.lang.String KEY_OPTION_DECRYPT_TYPE
static final java.lang.String KEY_OPTION_DECRYPT_KEY
String
解密key
static final java.lang.String KEY_OPTION_ENABLE_ANALYZE_SEI
Boolean
开启解析seistatic final java.lang.String KEY_OPTION_BUFFERING_EVENT_NOTIFY_DELAY_MS
Integer
缓冲事件 延迟通知时间 (默认不延迟)static final java.lang.String KEY_OPTION_CLOUD_CONTROL_MODE
static final int CLOUD_CONTROL_MODE_DEFAULT
static final int CLOUD_CONTROL_MODE_LOW_DELAY
static final int CLOUD_CONTROL_MODE_CARD_REC
static final int QHVC_DECRYPT_TYPE_FFMPEG
static final int QHVC_DECRYPT_TYPE_SHUIDI
static final int QHVC_DECRYPT_TYPE_DISHI
static final java.lang.String RECORDER_FORMAT_MP4
@Deprecated static final java.lang.String RECORDER_FORMAT_MOV
static final java.lang.String RECORDER_FORMAT_GIF
int setDataSource(int playType, java.lang.String sn, java.lang.String channelId, java.lang.String sign, java.util.Map<java.lang.String,java.lang.Object> options)
playType
- 播放类型 IQHVCPlayer.PLAYTYPE_LIVE
, IQHVCPlayer.PLAYTYPE_VOD
sn
- sn (需要走调度流程)channelId
- 业务idsign
- 鉴权签名options
- 播放器可选属性 IQHVCPlayerAdvanced.OptionKey
IQHVCPlayer.ERROR_OK
其他:Error
int setDataSource(int playType, java.lang.String[] rid, java.lang.String[] sn, int defaultIndex, java.lang.String channelId, java.lang.String sign, java.util.Map<java.lang.String,java.lang.Object> options)
playType
- 播放类型 {IQHVCPlayer.PLAYTYPE_VOD
rid
- 资源唯一标示(调用方保证唯一)sn
- 多个不同分辨率源(分辨率 从高到低 eg: sn[0]=1080p sn[1]=720p sn[2]=540)defaultIndex
- sdk从sn[defaultIndex]获取url,播放channelId
- 业务idsign
- 鉴权签名options
- 播放器可选属性 IQHVCPlayerAdvanced.OptionKey
boolean snapshot(java.lang.String path)
snapshot(QHVCSnapshotListener)
path
- 存储路径boolean snapshot(IQHVCPlayerAdvanced.QHVCSnapshotListener snapshotListener)
snapshotListener
- 结果回调int getDecoderMode()
LIVECLOUD_SOFT_DECODE_MODE
, LIVECLOUD_SMART_DECODE_MODE
int disableRender(boolean isDisableRender)
isDisableRender:
- IQHVCPlayer.ERROR_OK
其他:Error
int seekTo(int millis, boolean accurate)
millis
- 目标时间点,单位:毫秒accurate
- 是否进行精准seek;accurate=false等同于void seekTo(long msec);IQHVCPlayer.ERROR_OK
其他:Error
int setPlayBackRate(float rate)
rate
- 播放速度,取值1~n(建议n<=5)IQHVCPlayer.ERROR_OK
其他:Error
int stop(int reason)
reason
- IQHVCPlayer.ERROR_OK
其他:Error
int addToGroup(int group)
group
- void setOnUserDefinedDataListener(IQHVCPlayerAdvanced.OnUserDefinedDataListener listener)
void setOnPlayerNetStatsListener(IQHVCPlayerAdvanced.OnPlayerNetStatsListener listener)
listener
- void setOnAudioPCMListener(IQHVCPlayerAdvanced.OnAudioPCMListener listener)
listener
- void setOnPacketListener(IQHVCPlayerAdvanced.OnPacketListener listener)
listener
- void setOnSeiMetaListener(IQHVCPlayerAdvanced.OnSeiMetaListener listener)
#setDataSource( int, String, String, String, Map options)
设置options.put(IQHVCPlayerAdvanced.KEY_OPTION_ENABLE_ANALYZE_SEI, Boolean.TRUE)listener
- void setOnCustomizeSeiMetaListener(IQHVCPlayerAdvanced.OnCustomizeSeiMetaListener listener)
#setDataSource( int, String, String, String, Map options)
设置options.put(IQHVCPlayerAdvanced.KEY_OPTION_ENABLE_ANALYZE_SEI, Boolean.TRUE)listener
- int startRecorder(java.lang.String filePath, java.lang.String fmt, com.qihoo.livecloud.play.RecordConfig config, IQHVCPlayerAdvanced.OnRecordListener listener)
注意:不支持暂停时录制
录制mp4: fmt使用 RECORDER_FORMAT_MP4
, Config使用VideoRecordConfig
录制gif: fmt使用 RECORDER_FORMAT_GIF
, Config使用GifRecordConfig
filePath
- 录像存储路径(确保有读写权限)fmt
- 存储格式 IQHVCPlayerAdvanced.RecorderFormat
config
- 配置listener
- callbackint stopRecorder()
int setOnAudioVolumeListener(IQHVCPlayerAdvanced.OnAudioVolumeListener listener, long period)
设置音量回调:listener != null && period > 0 删除音量回调: listener == null || period <= 0
listener
- period
- 回调时间间隔IQHVCPlayer.ERROR_OK
其他:Error
void switchResolution(int index, IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
index
- 数据源索引,setDataSource(int, String[], String[], int, String, String, Map)
设置的source的索引listener
- 状态回调int switchResolutionStop(java.lang.String reason)
reason
- 取消切换原因int setResolutionAdapt(boolean isAdapt, IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
isAdapt
- 是否根据网络状况自动切换分辨率listener
- 状态回调boolean isSystemMediaPlayer()
int getPropertyRotate()
void setFilterValues(float brightness, float contrast, float saturation)
brightness
- 亮度 取值范围(-0.2f, 0.35f)contrast
- 对比度 取值范围(0.9f, 1.6f)saturation
- 饱和度 取值范围(0.15f, 2f)void setSurfaceRenderListener(IQHVCPlayerAdvanced.SurfaceRenderListener surfaceRenderListener)
IQHVCPlayer.setDisplay(ILiveCloudDisplay)
前调用surfaceRenderListener
- 视频渲染高级接口long getCurrentStreamTime()
long getLiveCurrentTimestamp()
int writeStream(long playerId, int type, long nativeData, int size, long pts, long dts, int iskey, long nativeStreamCodecContext)
playerId
- type
- 数据包格式nativeData
- 帧数据size
- 数据长度pts
- dts
- iskey
- 是否是关键帧int enableBufferingLogic(boolean enable)
enable
- 是否开启