public class QHVCPlayer extends java.lang.Object implements IQHVCPlayerAdvanced, com.qihoo.livecloud.play.callback.PlayerCallback
Modifier and Type | Class and Description |
---|---|
class |
QHVCPlayer.P2pTaskInfo |
static class |
QHVCPlayer.PlayerMsg |
IQHVCPlayerAdvanced.DataCallBackListener, IQHVCPlayerAdvanced.DecodeMode, IQHVCPlayerAdvanced.DelayListener, IQHVCPlayerAdvanced.OnAudioPCMListener, IQHVCPlayerAdvanced.OnAudioVolumeListener, IQHVCPlayerAdvanced.OnCustomizeSeiMetaListener, IQHVCPlayerAdvanced.OnPacketListener, IQHVCPlayerAdvanced.OnPlayerNetStatsListener, IQHVCPlayerAdvanced.OnRecordListener, IQHVCPlayerAdvanced.OnSeiMetaListener, IQHVCPlayerAdvanced.OnUserDefinedDataListener, IQHVCPlayerAdvanced.OptionKey, IQHVCPlayerAdvanced.PlayMode, IQHVCPlayerAdvanced.QHVCAnalyzeSEIMode, IQHVCPlayerAdvanced.QHVCCloudControlMode, IQHVCPlayerAdvanced.QHVCDecryptType, IQHVCPlayerAdvanced.QHVCPlayerUndistortParam, IQHVCPlayerAdvanced.QHVCPlayerUndistortType, IQHVCPlayerAdvanced.QHVCSnapshotListener, IQHVCPlayerAdvanced.QHVCSwitchResolutionError, IQHVCPlayerAdvanced.QHVCSwitchResolutionListener, IQHVCPlayerAdvanced.RecorderFormat, IQHVCPlayerAdvanced.RenderMode, IQHVCPlayerAdvanced.StopReason, IQHVCPlayerAdvanced.SurfaceRenderListener
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 |
FILTER_MODE_CLOUD |
static int |
FILTER_MODE_USER |
static float |
FLOAT_EPSINON |
static java.lang.String |
KEY_STATS_SWITCH_FAILED_REASON_INT |
static float |
PLAYBACK_RATE_DEFAULT |
static java.lang.String |
SESSION_ID_SUFFIX_HEVC_FAILED |
static java.lang.String |
SESSION_ID_SUFFIX_HW_FAILED |
static java.lang.String |
SESSION_ID_SUFFIX_SWITCH |
static int |
SWI_ERR_CLOSE_BY_USER |
static int |
SWI_ERR_INVALID_PARAM |
static int |
SWI_ERR_OPEN_TIMEOUT |
static int |
SWI_ERR_OTHER |
static int |
SWI_ERR_PAUSE |
static int |
SWI_ERR_PLAYBACK_RATE |
static int |
SWI_ERR_SECOND_PLAYER_OPEN_FAILED |
static int |
SWI_ERR_SEEK |
static int |
SWI_ERR_STOP |
CLOUD_CONTROL_MODE_CARD_REC, CLOUD_CONTROL_MODE_DEFAULT, CLOUD_CONTROL_MODE_LOW_DELAY, KEY_OPTION_ADAPTER_DECODER_FLAG, KEY_OPTION_ANALYZE_SEI_MODE, KEY_OPTION_BUFFERING_EVENT_NOTIFY_DELAY_MS, KEY_OPTION_CALL_BACK_FRAME_TYPE, KEY_OPTION_CLOUD_CONTROL_MODE, KEY_OPTION_DECODE_MODE, KEY_OPTION_DECRYPT_KEY, KEY_OPTION_DECRYPT_TYPE, KEY_OPTION_ENABLE_ANALYZE_SEI, KEY_OPTION_ENABLE_ANALYZE_SEI_DROPSEIOUTDATE, KEY_OPTION_FORCE_P2P, KEY_OPTION_HLS_REFERER, KEY_OPTION_HTTP_HEADER, KEY_OPTION_MAX_ANALYZE_DURATION, KEY_OPTION_MUTE, KEY_OPTION_PLAY_MODE, KEY_OPTION_PLAY_SCENE, KEY_OPTION_POSITION, KEY_OPTION_POSITION_ACCURATE, KEY_OPTION_PREVIEW_DURATION, KEY_OPTION_PRODUCT_ID, KEY_OPTION_RENDER_MODE, KEY_OPTION_SCHEDULE_ENCODE_TYPE, KEY_OPTION_SCHEDULE_URL, KEY_OPTION_SESSION_ID, KEY_OPTION_SHARED_STREAM_ID, KEY_OPTION_SRC_OUTSIDE, KEY_OPTION_STREAM_TYPE, KEY_OPTION_TRANSCODE_ROTATE, KEY_OPTION_TRANSPORT_PROTOCOL, KEY_OPTION_VIDEO_STREAM_ID, KEY_OPTION_VOD_PROGRESS_CBGAP, LIVECLOUD_SMART_DECODE_MODE, LIVECLOUD_SOFT_DECODE_MODE, PLAY_ERROR, PLAY_INCOMING_CALL, PLAY_OTHER, PLAY_OVER, PLAYER_CLASS_NAME, PLAYMODE_FLUENCY, PLAYMODE_LIVE_IOT, PLAYMODE_LIVE_SHIFT, PLAYMODE_LOWLATENCY, PLAYMODE_NO_AVSYNC, QHVC_ANALYZE_SEI_MODE_AUDIO, QHVC_ANALYZE_SEI_MODE_VIDEO, QHVC_DECRYPT_TYPE_DISHI, QHVC_DECRYPT_TYPE_DISHI2, QHVC_DECRYPT_TYPE_FFMPEG, QHVC_DECRYPT_TYPE_SHUIDI, QHVCPlayerUndistortTypeBarrel, QHVCPlayerUndistortTypeFish, RECORDER_FORMAT_GIF, RECORDER_FORMAT_MOV, RECORDER_FORMAT_MP4, RENDER_MODE_FULL, RENDER_MODE_IN, RENDER_MODE_OUT, UNDISTORT_PARAM_BARREL_INTENSITY_X, UNDISTORT_PARAM_BARREL_INTENSITY_Y, UNDISTORT_PARAM_BARREL_SCALE_X, UNDISTORT_PARAM_BARREL_SCALE_Y, UNDISTORT_PARAM_FISH_FOUR, UNDISTORT_PARAM_FISH_VIEW1_HORIZONTAL, UNDISTORT_PARAM_FISH_VIEW1_VERTICAL, UNDISTORT_PARAM_FISH_VIEW2_HORIZONTAL, UNDISTORT_PARAM_FISH_VIEW2_VERTICAL, UNDISTORT_PARAM_FISH_VIEW3_HORIZONTAL, UNDISTORT_PARAM_FISH_VIEW3_VERTICAL, UNDISTORT_PARAM_FISH_VIEW4_HORIZONTAL, UNDISTORT_PARAM_FISH_VIEW4_VERTICAL, 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_HW_DECODER, 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
DEVICE_RENDER_ERR, DEVICE_RENDER_FIRST_FRAME, DEVICE_RENDER_QUERY_SURFACE, DEVICE_RENDER_SURFACE_CHANGE, JPLAYER_MSG_ADD_CHANNEL, JPLAYER_MSG_AUDIO_IS_READY, JPLAYER_MSG_AUDIO_IS_SILENT, JPLAYER_MSG_BUSY, JPLAYER_MSG_CONNECT_COMPLETE, JPLAYER_MSG_CONNECT_FAILED, JPLAYER_MSG_CONNECT_INBACKGOURND, JPLAYER_MSG_DATA_USERDEFINE, JPLAYER_MSG_DVRENDER, JPLAYER_MSG_DVRENDER_RESETSURFACE, JPLAYER_MSG_ERROR_FILENOTOPEN, JPLAYER_MSG_ERROR_FORMATNOTSUPPORT, JPLAYER_MSG_FAILED_HEVCPLAYBACK, JPLAYER_MSG_FILE_OPEN, JPLAYER_MSG_FILE_PROPERTY_ROTATE, JPLAYER_MSG_HW_DECODER_IS_NOT_SUPPORT, JPLAYER_MSG_MAIN_SCHEDULE_HANDLE, JPLAYER_MSG_NO_INIT_FAIL, JPLAYER_MSG_NORMAL, JPLAYER_MSG_RECORD_ENDSTREAM, JPLAYER_MSG_RECORD_ERROR, JPLAYER_MSG_RECORD_INVALID_FILE, JPLAYER_MSG_RECORD_SUCCUSS, JPLAYER_MSG_RECORD_TIMER, JPLAYER_MSG_SESSION_CLOSED, JPLAYER_MSG_SESSION_CONNECTED, JPLAYER_MSG_START_CHANNEL_FAILED, JPLAYER_MSG_START_CHANNEL_OK, JPLAYER_MSG_START_SUCCESS, JPLAYER_MSG_STARTBUFFERING, JPLAYER_MSG_STATUS_SEEK, JPLAYER_MSG_STATUS_UPDATE, JPLAYER_MSG_STOPBUFFERING, JPLAYER_MSG_SUBSCRIBE_FAILED, JPLAYER_MSG_VIDEO_IS_READY, JPLAYER_MSG_VIDEO_RESOLUTION, JPLAYER_MSG_VIDEO_SAR, JPLAYER_MSG_VIDEO_SIZE_CHANGE, JPLAYER_MSG_VIDEOCACHE
Constructor and Description |
---|
QHVCPlayer(Context context)
使用插件化功能时,请使用
QHVCPlayerBuilder.getPlayer(Context) 创建播放器实例 |
Modifier and Type | Method and Description |
---|---|
int |
addToGroup(int group)
多个播放器设为一组(数据流同步场景)
|
void |
clearQualityFilters()
清除所有特效
|
int |
disableRender(boolean isDisableRender)
设置播放器是否渲染图像
|
int |
enableBufferingLogic(boolean enable)
是否开启缓冲逻辑 (默认开启)
|
void |
enableUndistort(boolean enable)
是否开启畸变矫正
|
void |
flushLiveDecoder() |
java.util.List<com.qihoo.videocloud.model.QualityEffect> |
getAllQualityFilters()
获取所有画质增强特效
|
long |
getCacheDuration()
获取播放器当前缓冲时长 ,单位:ms(毫秒)
|
int |
getCurrentPosition()
获取当前已播放时间,单位:ms(毫秒)
注: 只支持点播(回看) |
java.util.List<com.qihoo.videocloud.model.QualityEffect> |
getCurrentQualityFilters()
获取当前设置的画质增强特效
|
long |
getCurrentStreamTime()
获取主播直播流的流时间
|
int |
getDecoderMode()
获取当前使用的解码模式
|
int |
getDuration()
获取视频文件总时长,单位:ms(毫秒)
注: 只支持点播(回看) |
java.lang.String |
getHwDecoderName() |
long |
getLiveCurrentTimestamp()
获取当前帧时间戳 单位:ms(毫秒)
注: 目前只支持rtsp |
java.util.Map<java.lang.String,java.lang.Object> |
getMediaInformation()
获取视频信息
|
static java.lang.String |
getNativeVersion()
获取 Native版本号
|
long |
getPlayerId() |
com.qihoo.videocloud.model.PlayerStatus |
getPlayerStatus()
获取播放器状态参数
|
int |
getPropertyRotate()
获取视频的旋转属性
|
boolean |
getRecordingState()
是否是录制状态
|
int |
getRenderMode()
获取渲染模式
|
int |
getUserRotate() |
static java.lang.String |
getVersion()
获取版本号
|
float |
getVolume()
获取播放器当前音量
|
static boolean |
isDefaultPlayBackRate(float playbackRate) |
boolean |
isMute()
是否是静音状态
|
boolean |
isPaused()
视频是否处于暂停状态
|
boolean |
isPlaying()
是否正在播放
|
boolean |
isSystemMediaPlayer()
是否是系统播放器
|
boolean |
isUseHdRedord(int width,
int height)
是否开启硬编
|
int |
liveFlushBuffer()
卡录seek后清缓存调用这个
|
void |
onCustomizeSeiMeta(long playerId,
byte[] uuid,
byte[] data)
用户自定义SEI META
|
void |
onDelayCallBack(long playerId,
long delay_sei_ms,
long delay_player_ms,
long pts)
播放器延迟回调
|
void |
onFrameDataCallBack(long playerId,
int type,
int width,
int height,
byte[] data)
播放器解码数据回调
|
void |
onMessage(long playerId,
int id,
int type,
int flags,
int size,
long data,
long time) |
long |
onPacketCallBack(long playerId,
long context,
long packet)
音频/视频数据回调
|
void |
onPlayerMsg(long playerId,
int command,
long para1,
long para2,
int user)
底层(C层)播放消息回调
|
void |
onPlayerMsgHandle(long playerId,
int command,
long para1,
long para2,
int user)
底层(C层)播放消息回调
|
void |
onSeiMeta(long plyerId,
long type,
byte[] data,
int user)
ser meta
|
void |
onUpdateGPPlayState(long playerId,
long nowTime,
long videoBufferTime,
long audioBufferTime)
onUpdateGPPlayState
|
void |
onUpdateStatus(long playerId,
int vbps,
int abps,
int vfps,
int afps,
int fps,
int bitrate,
int param1,
int param2,
int user)
底层(C层)码流回调
|
void |
onUserDefineData(long playerId,
byte[] data,
int length)
用户自定义数据回调
|
int |
pause()
暂停播放
|
void |
pauseRecord() |
static void |
preLoad()
预加载so
|
int |
prepareAsync()
准备播放,异步方法
注: 调用此方法开始走调度流程。 |
void |
release()
播放器资源回收
|
void |
removeQualityFilter(int type)
按照特效类型删除某个特效
|
void |
resumerRecord() |
int |
seekTo(int millis)
目标时间点,单位:ms(毫秒)
目前只支持回看拖动 |
int |
seekTo(int millis,
boolean accurate)
精确seekTo
|
void |
setControlParameter(java.lang.String json) |
int |
setDataSource(int playType,
java.lang.String[] rids,
java.lang.String[] sources,
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 url,
java.lang.String channelId)
设置视频源
|
int |
setDataSource(int playType,
java.lang.String url,
java.lang.String channelId,
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 |
setDisplay(com.qihoo.livecloud.play.callback.ILiveCloudDisplay display)
设置播放器显示View
|
void |
setFilterValues(float brightness,
float contrast,
float saturation)
设置视频画质增强filter属性
|
int |
setFontConfig(java.lang.String path)
设置fontconfig配置文件,在setSubtitles之前调用
|
int |
setMute(boolean mute)
设置是否静音播放
|
void |
setOnAudioPCMListener(IQHVCPlayerAdvanced.OnAudioPCMListener listener)
设置音频数据回调
|
int |
setOnAudioVolumeListener(IQHVCPlayerAdvanced.OnAudioVolumeListener listener,
long period)
设置音量回调(只支持直播)
收到INFO_LIVE_PLAY_START后调用
|
void |
setOnBufferingEventListener(IQHVCPlayer.OnBufferingEventListener listener) |
void |
setOnBufferingUpdateListener(IQHVCPlayer.OnBufferingUpdateListener listener)
Register a callback to be invoked when the status of a network stream's buffer has changed.
|
void |
setOnCompletionListener(IQHVCPlayer.OnCompletionListener listener)
Register a callback to be invoked when the end of a media source has been reached during playback.
|
void |
setOnCustomizeSeiMetaListener(IQHVCPlayerAdvanced.OnCustomizeSeiMetaListener listener)
设置自定义sei meta回调
注意需要设置:
#setDataSource( int, String, String, String, Map 设置options.put(IQHVCPlayerAdvanced.KEY_OPTION_ENABLE_ANALYZE_SEI, Boolean.TRUE) |
void |
setOnDelayListener(int report_interval_ms,
IQHVCPlayerAdvanced.DelayListener delayCallBackListener)
设置播放器延迟回调
|
void |
setOnErrorListener(IQHVCPlayer.OnErrorListener listener)
Register a callback to be invoked when an error has happened during an asynchronous operation.
|
void |
setOnFrameDateCallBack(int expectWidth,
int expectHeight,
int fps,
java.util.Map<java.lang.String,java.lang.Object> option,
IQHVCPlayerAdvanced.DataCallBackListener dataCallBackListener)
设置播放器数据回调
|
void |
setOnInfoListener(IQHVCPlayer.OnInfoListener listener)
Register a callback to be invoked when an info/warning is available.
|
void |
setOnPacketListener(IQHVCPlayerAdvanced.OnPacketListener listener)
设置音频/视频数据回调
|
void |
setOnPlayerNetStatsListener(IQHVCPlayerAdvanced.OnPlayerNetStatsListener listener)
流量统计信息回调(暂时只支持直播)
|
void |
setOnPreparedListener(IQHVCPlayer.OnPreparedListener listener)
Register a callback to be invoked when the media source is ready for playback.
|
void |
setOnProgressChangeListener(IQHVCPlayer.onProgressChangeListener listener) |
void |
setOnSeekCompleteListener(IQHVCPlayer.OnSeekCompleteListener listener)
Register a callback to be invoked when a seek operation has been completed.
|
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) |
void |
setOnVideoSizeChangedListener(IQHVCPlayer.OnVideoSizeChangedListener listener)
Register a callback to be invoked when the video size is known or updated.
|
int |
setPlayBackRate(float rate)
倍速播放
|
void |
setPlayerControlConfig(com.qihoo.livecloud.play.PlayerControl playerControl,
long playerId,
java.lang.String sid) |
void |
setQualityFilter(com.qihoo.videocloud.model.QualityEffect effect)
设置画质增强特效
|
int |
setResolutionAdapt(boolean isAdapt,
IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
自动切换分辨率
|
void |
setScreenOnWhilePlaying(boolean screenOn)
设置播放时是否屏幕常亮
|
int |
setSubtitles(java.lang.String[] subtitles,
int defaultIndex)
设置字幕,在setDataSource之后调用
|
void |
setSurface(java.lang.String from,
SurfaceTexture texture)
为播放器设置显示SurfaceTexture
|
void |
setSurfaceRenderListener(IQHVCPlayerAdvanced.SurfaceRenderListener surfaceRenderListener)
设置视频渲染高级接口,必须在
IQHVCPlayer.setDisplay(ILiveCloudDisplay) 前调用 |
int |
setSurfaceViewport(int x,
int y,
int width,
int height)
为播放器渲染的surface设置Viewport
|
void |
setUndistorType(int type,
java.util.Map<java.lang.Integer,java.lang.Integer> param)
设置畸变矫正参数
|
void |
setUserRotate(int rotate) |
int |
setVolume(float volume)
设置音量
|
boolean |
snapshot(IQHVCPlayerAdvanced.QHVCSnapshotListener snapshotListener)
截图,异步方法
|
boolean |
snapshot(java.lang.String path)
截图 (同步方法,会阻塞线程),该方法已被废弃,请调用
IQHVCPlayerAdvanced.snapshot(QHVCSnapshotListener) |
int |
start()
播放
|
void |
startRecord(SurfaceTexture surfaceTexture)
双流播放器使用 外部开启录屏需要每个播放器传入纹理进行绘制
|
int |
startRecorder(java.lang.String filePath,
java.lang.String fmt0,
com.qihoo.livecloud.play.RecordConfig config,
IQHVCPlayerAdvanced.OnRecordListener listener)
开始录制
|
static void |
statsSessionStop(java.lang.String sid,
boolean isLast,
boolean isHw,
java.util.Map<java.lang.String,java.lang.Object> mediaInfoMap,
java.util.Map<java.lang.String,java.lang.Object> statsMap,
long averageBitrate,
long averageFps) |
int |
stop()
停止播放
|
int |
stop(int reason)
停止播放
|
int |
stopRecorder()
结束录制(异步接口)
|
void |
stopRecorder2()
双流播放器使用
|
void |
switchResolution(int index,
IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
切换分辨率
此接口是异步的,从切换分辨率到切换完成 有5秒延迟 |
int |
switchResolutionStop(java.lang.String reason)
取消分辨率切换
|
int |
switchSubtitles(int index)
切换字幕
|
void |
test_hard_decoder_error() |
void |
useQualityFilter(boolean enable)
是否开启画质增强特效
|
void |
useSwapSurface(boolean enable)
是否使用中转surface
|
int |
writeStream(long playerId,
int type,
long nativeData,
int size,
long pts,
long dts,
int iskey,
long nativeStreamCodecContext)
向播放器写入帧数据(推数据模式,目前仅支持relay)
|
public static final float FLOAT_EPSINON
public static final int FILTER_MODE_USER
public static final int FILTER_MODE_CLOUD
public static final java.lang.String SESSION_ID_SUFFIX_SWITCH
public static final java.lang.String SESSION_ID_SUFFIX_HEVC_FAILED
public static final java.lang.String SESSION_ID_SUFFIX_HW_FAILED
public static final float PLAYBACK_RATE_DEFAULT
public static final java.lang.String KEY_STATS_SWITCH_FAILED_REASON_INT
public static final int SWI_ERR_CLOSE_BY_USER
public static final int SWI_ERR_INVALID_PARAM
public static final int SWI_ERR_PAUSE
public static final int SWI_ERR_SEEK
public static final int SWI_ERR_STOP
public static final int SWI_ERR_PLAYBACK_RATE
public static final int SWI_ERR_OPEN_TIMEOUT
public static final int SWI_ERR_SECOND_PLAYER_OPEN_FAILED
public static final int SWI_ERR_OTHER
public QHVCPlayer(Context context)
QHVCPlayerBuilder.getPlayer(Context)
创建播放器实例public static java.lang.String getVersion()
public static java.lang.String getNativeVersion()
public 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)
IQHVCPlayerAdvanced
setDataSource
in interface IQHVCPlayerAdvanced
playType
- 播放类型 IQHVCPlayer.PLAYTYPE_LIVE
, IQHVCPlayer.PLAYTYPE_VOD
sn
- sn (需要走调度流程)channelId
- 业务idsign
- 鉴权签名options
- 播放器可选属性 IQHVCPlayerAdvanced.OptionKey
IQHVCPlayer.ERROR_OK
其他:Error
public int setDataSource(int playType, java.lang.String url, java.lang.String channelId, java.util.Map<java.lang.String,java.lang.Object> options)
IQHVCPlayer
setDataSource
in interface IQHVCPlayer
playType
- 播放类型 IQHVCPlayer.PLAYTYPE_LIVE
, IQHVCPlayer.PLAYTYPE_VOD
url
- urlchannelId
- 业务idoptions
- 播放器可选属性 IQHVCPlayerAdvanced.OptionKey
IQHVCPlayer.ERROR_OK
其他:Error
public int setDataSource(int playType, java.lang.String url, java.lang.String channelId)
IQHVCPlayer
setDataSource
in interface IQHVCPlayer
playType
- 播放类型 IQHVCPlayer.PLAYTYPE_LIVE
, IQHVCPlayer.PLAYTYPE_VOD
url
- 视频源地址channelId
- 业务idIQHVCPlayer.ERROR_OK
其他:Error
public int setDataSource(int playType, java.lang.String[] rids, java.lang.String[] sources, int defaultIndex, java.lang.String channelId, java.lang.String sign, java.util.Map<java.lang.String,java.lang.Object> options)
IQHVCPlayerAdvanced
setDataSource
in interface IQHVCPlayerAdvanced
playType
- 播放类型 {IQHVCPlayer.PLAYTYPE_VOD
rids
- 资源唯一标示(调用方保证唯一)sources
- 多个不同分辨率源(分辨率 从高到低 eg: sn[0]=1080p sn[1]=720p sn[2]=540)defaultIndex
- sdk从sn[defaultIndex]获取url,播放channelId
- 业务idsign
- 鉴权签名options
- 播放器可选属性 IQHVCPlayerAdvanced.OptionKey
public int setFontConfig(java.lang.String path)
IQHVCPlayerAdvanced
setFontConfig
in interface IQHVCPlayerAdvanced
path
- 配置文件地址 例如/sdcard/test/fonts.confIQHVCPlayer.ERROR_OK
其他:Error
public int setSubtitles(java.lang.String[] subtitles, int defaultIndex)
IQHVCPlayerAdvanced
setSubtitles
in interface IQHVCPlayerAdvanced
subtitles
- 字幕文件地址数组,字幕文件地址必须是本地文件defaultIndex
- 设置默认字幕的索引IQHVCPlayer.ERROR_OK
其他:Error
public int switchSubtitles(int index)
IQHVCPlayerAdvanced
switchSubtitles
in interface IQHVCPlayerAdvanced
index
- 字幕的索引,索引小于0表示禁用字幕IQHVCPlayer.ERROR_OK
其他:Error
public void useSwapSurface(boolean enable)
IQHVCPlayerAdvanced
useSwapSurface
in interface IQHVCPlayerAdvanced
enable
- 是否使用中转surfacepublic void enableUndistort(boolean enable)
IQHVCPlayerAdvanced
enableUndistort
in interface IQHVCPlayerAdvanced
enable
- 是否开启public void setUndistorType(int type, java.util.Map<java.lang.Integer,java.lang.Integer> param)
IQHVCPlayerAdvanced
setUndistorType
in interface IQHVCPlayerAdvanced
type
- 算法类型param
- 算法类型IQHVCPlayerAdvanced.QHVCPlayerUndistortParam
public boolean snapshot(java.lang.String path)
IQHVCPlayerAdvanced
IQHVCPlayerAdvanced.snapshot(QHVCSnapshotListener)
snapshot
in interface IQHVCPlayerAdvanced
path
- 存储路径public boolean snapshot(IQHVCPlayerAdvanced.QHVCSnapshotListener snapshotListener)
IQHVCPlayerAdvanced
snapshot
in interface IQHVCPlayerAdvanced
snapshotListener
- 结果回调public int getDecoderMode()
IQHVCPlayerAdvanced
getDecoderMode
in interface IQHVCPlayerAdvanced
IQHVCPlayerAdvanced.LIVECLOUD_SOFT_DECODE_MODE
, IQHVCPlayerAdvanced.LIVECLOUD_SMART_DECODE_MODE
public int disableRender(boolean isDisableRender)
IQHVCPlayerAdvanced
disableRender
in interface IQHVCPlayerAdvanced
IQHVCPlayer.ERROR_OK
其他:Error
public int start()
IQHVCPlayer
start
in interface IQHVCPlayer
IQHVCPlayer.ERROR_OK
其他:Error
public int stop(int reason)
IQHVCPlayerAdvanced
stop
in interface IQHVCPlayerAdvanced
reason
- IQHVCPlayer.ERROR_OK
其他:Error
public int addToGroup(int group)
IQHVCPlayerAdvanced
addToGroup
in interface IQHVCPlayerAdvanced
public void setOnUserDefinedDataListener(IQHVCPlayerAdvanced.OnUserDefinedDataListener listener)
setOnUserDefinedDataListener
in interface IQHVCPlayerAdvanced
public void setDisplay(com.qihoo.livecloud.play.callback.ILiveCloudDisplay display)
IQHVCPlayer
setDisplay
in interface IQHVCPlayer
public void setOnPlayerNetStatsListener(IQHVCPlayerAdvanced.OnPlayerNetStatsListener listener)
IQHVCPlayerAdvanced
setOnPlayerNetStatsListener
in interface IQHVCPlayerAdvanced
public int prepareAsync()
IQHVCPlayer
成功: 回调OnPreparedListener的onPrepared()接口 - 调度成功,应用层可调用start(0)开始播放
失败: 回调onError(ERROR_PREPARE_FAILED, ERROR_EXTRA_PREPARE_DISPATCH_FAILED)
prepareAsync
in interface IQHVCPlayer
IQHVCPlayer.ERROR_OK
其他:Error
public boolean isPlaying()
IQHVCPlayer
isPlaying
in interface IQHVCPlayer
public int pause()
IQHVCPlayer
pause
in interface IQHVCPlayer
IQHVCPlayer.ERROR_OK
其他:Error
public boolean isPaused()
IQHVCPlayer
isPaused
in interface IQHVCPlayer
public int seekTo(int millis)
IQHVCPlayer
seekTo
in interface IQHVCPlayer
millis
- 要拖动到的目标时间IQHVCPlayer.ERROR_OK
其他:Error
public int liveFlushBuffer()
public int seekTo(int millis, boolean accurate)
IQHVCPlayerAdvanced
seekTo
in interface IQHVCPlayerAdvanced
millis
- 目标时间点,单位:毫秒accurate
- 是否进行精准seek;accurate=false等同于void seekTo(long msec);IQHVCPlayer.ERROR_OK
其他:Error
public int setPlayBackRate(float rate)
IQHVCPlayerAdvanced
setPlayBackRate
in interface IQHVCPlayerAdvanced
rate
- 播放速度,取值1~n(建议n<=5)IQHVCPlayer.ERROR_OK
其他:Error
public int getCurrentPosition()
IQHVCPlayer
getCurrentPosition
in interface IQHVCPlayer
public long getLiveCurrentTimestamp()
IQHVCPlayerAdvanced
getLiveCurrentTimestamp
in interface IQHVCPlayerAdvanced
public int getDuration()
IQHVCPlayer
getDuration
in interface IQHVCPlayer
public long getCacheDuration()
IQHVCPlayer
getCacheDuration
in interface IQHVCPlayer
public long getCurrentStreamTime()
IQHVCPlayerAdvanced
getCurrentStreamTime
in interface IQHVCPlayerAdvanced
public int stop()
IQHVCPlayer
stop
in interface IQHVCPlayer
IQHVCPlayer.ERROR_OK
其他:Error
public void release()
IQHVCPlayer
release
in interface IQHVCPlayer
public int setMute(boolean mute)
IQHVCPlayer
setMute
in interface IQHVCPlayer
mute
- IQHVCPlayer.ERROR_OK
其他:Error
public void setOnAudioPCMListener(IQHVCPlayerAdvanced.OnAudioPCMListener listener)
IQHVCPlayerAdvanced
setOnAudioPCMListener
in interface IQHVCPlayerAdvanced
public void setOnBufferingUpdateListener(IQHVCPlayer.OnBufferingUpdateListener listener)
IQHVCPlayer
setOnBufferingUpdateListener
in interface IQHVCPlayer
public void setOnBufferingEventListener(IQHVCPlayer.OnBufferingEventListener listener)
setOnBufferingEventListener
in interface IQHVCPlayer
public boolean isMute()
IQHVCPlayer
isMute
in interface IQHVCPlayer
public void setScreenOnWhilePlaying(boolean screenOn)
IQHVCPlayer
setScreenOnWhilePlaying
in interface IQHVCPlayer
screenOn
- public long getPlayerId()
getPlayerId
in interface IQHVCPlayer
public void setOnPreparedListener(IQHVCPlayer.OnPreparedListener listener)
IQHVCPlayer
setOnPreparedListener
in interface IQHVCPlayer
public void setOnSeekCompleteListener(IQHVCPlayer.OnSeekCompleteListener listener)
IQHVCPlayer
setOnSeekCompleteListener
in interface IQHVCPlayer
public void setOnErrorListener(IQHVCPlayer.OnErrorListener listener)
IQHVCPlayer
setOnErrorListener
in interface IQHVCPlayer
public void setOnCompletionListener(IQHVCPlayer.OnCompletionListener listener)
IQHVCPlayer
setOnCompletionListener
in interface IQHVCPlayer
public void setOnInfoListener(IQHVCPlayer.OnInfoListener listener)
IQHVCPlayer
setOnInfoListener
in interface IQHVCPlayer
public void setOnVideoSizeChangedListener(IQHVCPlayer.OnVideoSizeChangedListener listener)
IQHVCPlayer
setOnVideoSizeChangedListener
in interface IQHVCPlayer
public void onPlayerMsg(long playerId, int command, long para1, long para2, int user)
onPlayerMsg
in interface com.qihoo.livecloud.play.callback.PlayerCallback
playerId
- command
- para1
- para2
- user
- public void onPlayerMsgHandle(long playerId, int command, long para1, long para2, int user)
playerId
- command
- para1
- para2
- user
- public void onUpdateStatus(long playerId, int vbps, int abps, int vfps, int afps, int fps, int bitrate, int param1, int param2, int user)
onUpdateStatus
in interface com.qihoo.livecloud.play.callback.PlayerCallback
playerId
- vbps
- 视频码率abps
- 音频码率vfps
- 视频帧率afps
- 音频帧率fps
- bitrate
- param1
- param2
- user
- public void onUpdateGPPlayState(long playerId, long nowTime, long videoBufferTime, long audioBufferTime)
onUpdateGPPlayState
in interface com.qihoo.livecloud.play.callback.PlayerCallback
playerId
- nowTime
- videoBufferTime
- audioBufferTime
- public void onMessage(long playerId, int id, int type, int flags, int size, long data, long time)
onMessage
in interface com.qihoo.livecloud.play.callback.PlayerCallback
playerId
- palyerIDid
- 音频流的idtype
- flags
- size
- 数据长度data
- 预留以前是想返回data地址的,后来用共享内存,所以预留了time
- 时间戳public void onUserDefineData(long playerId, byte[] data, int length)
onUserDefineData
in interface com.qihoo.livecloud.play.callback.PlayerCallback
playerId
- data
- length
- public long onPacketCallBack(long playerId, long context, long packet)
com.qihoo.livecloud.play.callback.PlayerCallback
onPacketCallBack
in interface com.qihoo.livecloud.play.callback.PlayerCallback
playerId
- player handlecontext
- native player contextpacket
- audio/video packetpublic void onSeiMeta(long plyerId, long type, byte[] data, int user)
com.qihoo.livecloud.play.callback.PlayerCallback
onSeiMeta
in interface com.qihoo.livecloud.play.callback.PlayerCallback
public void onCustomizeSeiMeta(long playerId, byte[] uuid, byte[] data)
com.qihoo.livecloud.play.callback.PlayerCallback
onCustomizeSeiMeta
in interface com.qihoo.livecloud.play.callback.PlayerCallback
public void setOnProgressChangeListener(IQHVCPlayer.onProgressChangeListener listener)
setOnProgressChangeListener
in interface IQHVCPlayer
public void onFrameDataCallBack(long playerId, int type, int width, int height, byte[] data)
com.qihoo.livecloud.play.callback.PlayerCallback
onFrameDataCallBack
in interface com.qihoo.livecloud.play.callback.PlayerCallback
public void onDelayCallBack(long playerId, long delay_sei_ms, long delay_player_ms, long pts)
com.qihoo.livecloud.play.callback.PlayerCallback
onDelayCallBack
in interface com.qihoo.livecloud.play.callback.PlayerCallback
public int setVolume(float volume)
IQHVCPlayer
setVolume
in interface IQHVCPlayer
volume
- 音量范围 0.0~1.0(1.0最大)IQHVCPlayer.ERROR_OK
其他:Error
public float getVolume()
IQHVCPlayer
getVolume
in interface IQHVCPlayer
public java.util.Map<java.lang.String,java.lang.Object> getMediaInformation()
IQHVCPlayer
getMediaInformation
in interface IQHVCPlayer
public int getRenderMode()
IQHVCPlayer
getRenderMode
in interface IQHVCPlayer
IQHVCPlayerAdvanced.RenderMode
public void setSurfaceRenderListener(IQHVCPlayerAdvanced.SurfaceRenderListener surfaceRenderListener)
IQHVCPlayerAdvanced
IQHVCPlayer.setDisplay(ILiveCloudDisplay)
前调用setSurfaceRenderListener
in interface IQHVCPlayerAdvanced
surfaceRenderListener
- 视频渲染高级接口public void setSurface(java.lang.String from, SurfaceTexture texture)
IQHVCPlayer
setSurface
in interface IQHVCPlayer
texture
- SurfaceTexture
播放器渲染的texturepublic int setSurfaceViewport(int x, int y, int width, int height)
IQHVCPlayer
setSurfaceViewport
in interface IQHVCPlayer
x
- x位置y
- y位置width
- 宽度height
- 高度public boolean isUseHdRedord(int width, int height)
width
- 视频宽height
- 视频高public int startRecorder(java.lang.String filePath, java.lang.String fmt0, com.qihoo.livecloud.play.RecordConfig config, IQHVCPlayerAdvanced.OnRecordListener listener)
IQHVCPlayerAdvanced
注意:不支持暂停时录制
录制mp4: fmt使用 IQHVCPlayerAdvanced.RECORDER_FORMAT_MP4
, Config使用VideoRecordConfig
录制gif: fmt使用 IQHVCPlayerAdvanced.RECORDER_FORMAT_GIF
, Config使用GifRecordConfig
startRecorder
in interface IQHVCPlayerAdvanced
filePath
- 录像存储路径(确保有读写权限)fmt0
- 存储格式 IQHVCPlayerAdvanced.RecorderFormat
config
- 配置listener
- callbackpublic void startRecord(SurfaceTexture surfaceTexture)
surfaceTexture
- public void stopRecorder2()
public int stopRecorder()
IQHVCPlayerAdvanced
stopRecorder
in interface IQHVCPlayerAdvanced
public int setOnAudioVolumeListener(IQHVCPlayerAdvanced.OnAudioVolumeListener listener, long period)
IQHVCPlayerAdvanced
设置音量回调:listener != null && period > 0 删除音量回调: listener == null || period <= 0
setOnAudioVolumeListener
in interface IQHVCPlayerAdvanced
period
- 回调时间间隔IQHVCPlayer.ERROR_OK
其他:Error
public void setOnPacketListener(IQHVCPlayerAdvanced.OnPacketListener listener)
IQHVCPlayerAdvanced
setOnPacketListener
in interface IQHVCPlayerAdvanced
public void setOnSeiMetaListener(IQHVCPlayerAdvanced.OnSeiMetaListener listener)
IQHVCPlayerAdvanced
#setDataSource( int, String, String, String, Map options)
设置options.put(IQHVCPlayerAdvanced.KEY_OPTION_ENABLE_ANALYZE_SEI, Boolean.TRUE)setOnSeiMetaListener
in interface IQHVCPlayerAdvanced
public void setOnCustomizeSeiMetaListener(IQHVCPlayerAdvanced.OnCustomizeSeiMetaListener listener)
IQHVCPlayerAdvanced
#setDataSource( int, String, String, String, Map options)
设置options.put(IQHVCPlayerAdvanced.KEY_OPTION_ENABLE_ANALYZE_SEI, Boolean.TRUE)setOnCustomizeSeiMetaListener
in interface IQHVCPlayerAdvanced
public int writeStream(long playerId, int type, long nativeData, int size, long pts, long dts, int iskey, long nativeStreamCodecContext)
IQHVCPlayerAdvanced
writeStream
in interface IQHVCPlayerAdvanced
type
- 数据包格式nativeData
- 帧数据size
- 数据长度iskey
- 是否是关键帧public int enableBufferingLogic(boolean enable)
IQHVCPlayerAdvanced
enableBufferingLogic
in interface IQHVCPlayerAdvanced
enable
- 是否开启public void setOnFrameDateCallBack(int expectWidth, int expectHeight, int fps, java.util.Map<java.lang.String,java.lang.Object> option, IQHVCPlayerAdvanced.DataCallBackListener dataCallBackListener)
IQHVCPlayerAdvanced
setOnFrameDateCallBack
in interface IQHVCPlayerAdvanced
expectWidth
- 期望宽度expectHeight
- 期望高度fps
- 帧率option
- 其他参数,如返回数据类型KEY_OPTION_CALL_BACK_FRAME_TYPEdataCallBackListener
- 回调接口public void setOnDelayListener(int report_interval_ms, IQHVCPlayerAdvanced.DelayListener delayCallBackListener)
IQHVCPlayerAdvanced
setOnDelayListener
in interface IQHVCPlayerAdvanced
report_interval_ms
- 回调间隔时间 单位毫秒delayCallBackListener
- 回调接口public void setPlayerControlConfig(com.qihoo.livecloud.play.PlayerControl playerControl, long playerId, java.lang.String sid)
public void switchResolution(int index, IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
IQHVCPlayerAdvanced
switchResolution
in interface IQHVCPlayerAdvanced
index
- 数据源索引,IQHVCPlayerAdvanced.setDataSource(int, String[], String[], int, String, String, Map)
设置的source的索引listener
- 状态回调public int switchResolutionStop(java.lang.String reason)
IQHVCPlayerAdvanced
switchResolutionStop
in interface IQHVCPlayerAdvanced
reason
- 取消切换原因public int setResolutionAdapt(boolean isAdapt, IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
IQHVCPlayerAdvanced
setResolutionAdapt
in interface IQHVCPlayerAdvanced
isAdapt
- 是否根据网络状况自动切换分辨率listener
- 状态回调public boolean isSystemMediaPlayer()
IQHVCPlayerAdvanced
isSystemMediaPlayer
in interface IQHVCPlayerAdvanced
public static boolean isDefaultPlayBackRate(float playbackRate)
public int getPropertyRotate()
IQHVCPlayerAdvanced
getPropertyRotate
in interface IQHVCPlayerAdvanced
public void setFilterValues(float brightness, float contrast, float saturation)
setFilterValues
in interface IQHVCPlayerAdvanced
brightness
- 亮度 取值范围(-0.2f, 0.35f)contrast
- 对比度 取值范围(0.9f, 1.6f)saturation
- 饱和度 取值范围(0.15f, 2f)public void test_hard_decoder_error()
public boolean getRecordingState()
public static void statsSessionStop(java.lang.String sid, boolean isLast, boolean isHw, java.util.Map<java.lang.String,java.lang.Object> mediaInfoMap, java.util.Map<java.lang.String,java.lang.Object> statsMap, long averageBitrate, long averageFps)
public void pauseRecord()
public void resumerRecord()
public java.lang.String getHwDecoderName()
public static void preLoad()
可以减少首次播放耗时 eg: nexus5x 8.1.0
public void setUserRotate(int rotate)
setUserRotate
in interface IQHVCPlayerAdvanced
public int getUserRotate()
getUserRotate
in interface IQHVCPlayerAdvanced
public com.qihoo.videocloud.model.PlayerStatus getPlayerStatus()
public void setControlParameter(java.lang.String json)
setControlParameter
in interface IQHVCPlayerAdvanced
public void flushLiveDecoder()
public void useQualityFilter(boolean enable)
IQHVCPlayerAdvanced
useQualityFilter
in interface IQHVCPlayerAdvanced
public java.util.List<com.qihoo.videocloud.model.QualityEffect> getAllQualityFilters()
IQHVCPlayerAdvanced
getAllQualityFilters
in interface IQHVCPlayerAdvanced
public java.util.List<com.qihoo.videocloud.model.QualityEffect> getCurrentQualityFilters()
IQHVCPlayerAdvanced
getCurrentQualityFilters
in interface IQHVCPlayerAdvanced
public void setQualityFilter(com.qihoo.videocloud.model.QualityEffect effect)
IQHVCPlayerAdvanced
setQualityFilter
in interface IQHVCPlayerAdvanced
public void clearQualityFilters()
IQHVCPlayerAdvanced
clearQualityFilters
in interface IQHVCPlayerAdvanced
public void removeQualityFilter(int type)
IQHVCPlayerAdvanced
removeQualityFilter
in interface IQHVCPlayerAdvanced
type
- 特效类型