public class QHVCPlayer extends java.lang.Object implements IQHVCPlayerAdvanced, com.qihoo.livecloud.play.callback.PlayerCallback
IQHVCPlayerAdvanced.DecodeMode, IQHVCPlayerAdvanced.OnAudioPCMListener, IQHVCPlayerAdvanced.OnAudioVolumeListener, IQHVCPlayerAdvanced.OnPlayerNetStatsListener, IQHVCPlayerAdvanced.OnRecordListener, IQHVCPlayerAdvanced.OnUserDefinedDataListener, IQHVCPlayerAdvanced.OptionKey, IQHVCPlayerAdvanced.PlayMode, 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 float |
PLAYBACK_RATE_DEFAULT |
static java.lang.String |
SESSION_ID_SUFFIX_HEVC_FAILED |
static java.lang.String |
SESSION_ID_SUFFIX_SWITCH |
KEY_OPTION_DECODE_MODE, KEY_OPTION_FORCE_P2P, KEY_OPTION_MUTE, KEY_OPTION_PLAY_MODE, KEY_OPTION_POSITION, KEY_OPTION_POSITION_ACCURATE, KEY_OPTION_PREVIEW_DURATION, KEY_OPTION_RENDER_MODE, KEY_OPTION_SCHEDULE_URL, KEY_OPTION_STREAM_TYPE, LIVECLOUD_SMART_DECODE_MODE, LIVECLOUD_SOFT_DECODE_MODE, PLAY_ERROR, PLAY_INCOMING_CALL, PLAY_OTHER, PLAY_OVER, PLAYMODE_FLUENCY, PLAYMODE_LOWLATENCY, RECORDER_FORMAT_GIF, RECORDER_FORMAT_MOV, RECORDER_FORMAT_MP4, RENDER_MODE_FULL, RENDER_MODE_IN, RENDER_MODE_OUT, 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_PLAYER_PLUGIN_LOAD_FAILED, ERROR_PREPARE_FAILED, ERROR_START_PLAY_FAILED, 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_LIVE_PLAY_FPS, INFO_LIVE_PLAY_SPEED, INFO_LIVE_PLAY_START, INFO_PLAY_H265, 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_CHANNEL_INT, KEY_MEDIA_INFO_AUDIO_FORMAT_STRING, KEY_MEDIA_INFO_AUDIO_SAMPLE_RATE_INT, KEY_MEDIA_INFO_BITRATE_INT, KEY_MEDIA_INFO_CDN_DOWNLOAD_SPEED_LONG, KEY_MEDIA_INFO_P2P_DOWNLOAD_SPEED_LONG, KEY_MEDIA_INFO_REAL_URL_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_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)
多个播放器设为一组(数据流同步场景)
|
static void |
clearP2PCache()
清空P2P的缓冲
|
void |
disableRender(boolean isDisableRender)
设置播放器是否渲染图像
|
void |
enableP2P(boolean enable) |
static void |
enableP2PUpload(boolean enableUpload)
是否允许P2P上传
|
int |
getCurrentPosition()
获取当前已播放时间,单位:ms(毫秒)
注: 只支持点播(回看) |
int |
getDecoderMode()
获取当前使用的解码模式
|
int |
getDuration()
获取视频文件总时长,单位:ms(毫秒)
注: 只支持点播(回看) |
java.util.Map<java.lang.String,java.lang.Object> |
getMediaInformation()
获取视频信息
|
static java.lang.String |
getNativeVersion()
获取 Native版本号
|
int |
getPlayerId() |
int |
getPropertyRotate()
获取视频的旋转属性
|
boolean |
getRecordingState()
是否是录制状态
|
int |
getRenderMode()
获取渲染模式
|
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)
是否开启硬编
|
void |
onMessage(int handle,
int id,
int type,
int flags,
int size,
long data,
long time) |
void |
onPlayerMsg(int handle,
int command,
long para1,
long para2,
int user)
底层(C层)播放消息回调
|
void |
onPlayerMsgHandle(int handle,
int command,
long para1,
long para2,
int user)
底层(C层)播放消息回调
|
void |
onUpdateGPPlayState(int handle,
long nowTime,
long videoBufferTime,
long audioBufferTime)
onUpdateGPPlayState
|
void |
onUpdateStatus(int handle,
int vbps,
int abps,
int vfps,
int afps,
int fps,
int bitrate,
int param1,
int param2,
int user)
底层(C层)码流回调
|
void |
onUserDefineData(int handle,
byte[] data,
int length)
用户自定义数据回调
|
void |
pause()
暂停播放
|
void |
prepareAsync()
准备播放,异步方法
注: 调用此方法开始走调度流程。 |
void |
release()
播放器资源回收
|
void |
seekTo(int millis)
目标时间点,单位:ms(毫秒)
目前只支持回看拖动 |
void |
seekTo(int millis,
boolean accurate)
精确seekTo
|
void |
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) |
void |
setDataSource(int playType,
java.lang.String url,
java.lang.String channelId)
设置视频源
|
void |
setDataSource(int playType,
java.lang.String url,
java.lang.String channelId,
java.util.Map<java.lang.String,java.lang.Object> options)
设置视频源
|
void |
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属性
|
void |
setMute(boolean mute)
设置是否静音播放
|
void |
setOnAudioPCMListener(IQHVCPlayerAdvanced.OnAudioPCMListener listener)
设置音频数据回调
|
void |
setOnAudioVolumeListener(IQHVCPlayerAdvanced.OnAudioVolumeListener listener,
long period)
设置音量回调(只支持直播)
收到INFO_LIVE_PLAY_START后调用
设置音量回调:listener != null && period > 0
删除音量回调: listener == null || period <= 0
|
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 |
setOnErrorListener(IQHVCPlayer.OnErrorListener listener)
Register a callback to be invoked when an error has happened during an asynchronous operation.
|
void |
setOnInfoListener(IQHVCPlayer.OnInfoListener listener)
Register a callback to be invoked when an info/warning is available.
|
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 |
setOnVideoSizeChangedListener(IQHVCPlayer.OnVideoSizeChangedListener listener)
Register a callback to be invoked when the video size is known or updated.
|
static void |
setP2PCacheDir(java.lang.String cacheDir)
设置P2P缓冲路径
|
static void |
setP2PCacheSize(int cacheSize)
设置P2P缓冲的大小
|
void |
setPlayBackRate(float rate)
倍速播放
|
void |
setPlayerControlConfig(com.qihoo.livecloud.play.PlayerControl playerControl,
int playerId,
java.lang.String sid) |
int |
setResolutionAdapt(boolean isAdapt,
IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
自动切换分辨率
|
void |
setScreenOnWhilePlaying(boolean screenOn)
设置播放时是否屏幕常亮
|
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 |
setVolume(float volume)
设置音量
|
boolean |
snapshot(java.lang.String path)
截图 (同步方法,会阻塞线程)
|
void |
start() |
int |
startRecorder(java.lang.String filePath,
java.lang.String fmt,
com.qihoo.livecloud.play.RecordConfig config,
IQHVCPlayerAdvanced.OnRecordListener listener)
开始录制
|
void |
stop() |
void |
stop(int reason)
停止播放
|
int |
stopRecorder()
结束录制(异步接口)
|
void |
switchResolution(int index,
IQHVCPlayerAdvanced.QHVCSwitchResolutionListener listener)
切换分辨率
此接口是异步的,从切换分辨率到切换完成 有5秒延迟 |
int |
switchResolutionStop(java.lang.String reason)
取消分辨率切换
|
void |
test_hard_decoder_error() |
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 float PLAYBACK_RATE_DEFAULT
public QHVCPlayer(Context context)
QHVCPlayerBuilder.getPlayer(Context)
创建播放器实例public static java.lang.String getVersion()
public static java.lang.String getNativeVersion()
public void 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) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
IQHVCPlayerAdvanced
setDataSource
in interface IQHVCPlayerAdvanced
playType
- 播放类型 IQHVCPlayer.PLAYTYPE_LIVE
, IQHVCPlayer.PLAYTYPE_VOD
sn
- sn (需要走调度流程)channelId
- 业务idsign
- 鉴权签名options
- 播放器可选属性 IQHVCPlayerAdvanced.OptionKey
java.io.IOException
java.lang.IllegalArgumentException
java.lang.IllegalStateException
public void setDataSource(int playType, java.lang.String url, java.lang.String channelId, java.util.Map<java.lang.String,java.lang.Object> options) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
IQHVCPlayer
setDataSource
in interface IQHVCPlayer
playType
- 播放类型 IQHVCPlayer.PLAYTYPE_LIVE
, IQHVCPlayer.PLAYTYPE_VOD
url
- urlchannelId
- 业务idoptions
- 播放器可选属性 IQHVCPlayerAdvanced.OptionKey
java.io.IOException
java.lang.IllegalArgumentException
java.lang.IllegalStateException
public void setDataSource(int playType, java.lang.String url, java.lang.String channelId) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
IQHVCPlayer
setDataSource
in interface IQHVCPlayer
playType
- 播放类型 IQHVCPlayer.PLAYTYPE_LIVE
, IQHVCPlayer.PLAYTYPE_VOD
url
- 视频源地址channelId
- 业务idjava.io.IOException
java.lang.IllegalArgumentException
java.lang.IllegalStateException
public void 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) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
setDataSource
in interface IQHVCPlayerAdvanced
java.io.IOException
java.lang.IllegalArgumentException
java.lang.IllegalStateException
public boolean snapshot(java.lang.String path)
IQHVCPlayerAdvanced
snapshot
in interface IQHVCPlayerAdvanced
path
- 存储路径public int getDecoderMode()
IQHVCPlayerAdvanced
getDecoderMode
in interface IQHVCPlayerAdvanced
IQHVCPlayerAdvanced.LIVECLOUD_SOFT_DECODE_MODE
, IQHVCPlayerAdvanced.LIVECLOUD_SMART_DECODE_MODE
public void disableRender(boolean isDisableRender) throws java.lang.IllegalStateException
IQHVCPlayerAdvanced
disableRender
in interface IQHVCPlayerAdvanced
java.lang.IllegalStateException
public void start() throws java.lang.IllegalStateException
start
in interface IQHVCPlayer
java.lang.IllegalStateException
public void stop(int reason) throws java.lang.IllegalStateException
IQHVCPlayerAdvanced
stop
in interface IQHVCPlayerAdvanced
reason
- java.lang.IllegalStateException
public int addToGroup(int group)
IQHVCPlayerAdvanced
addToGroup
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 void prepareAsync() throws java.lang.IllegalStateException
IQHVCPlayer
成功: 回调OnPreparedListener的onPrepared()接口 - 调度成功,应用层可调用start(0)开始播放
失败: 回调onError(ERROR_PREPARE_FAILED, ERROR_EXTRA_PREPARE_DISPATCH_FAILED)
prepareAsync
in interface IQHVCPlayer
java.lang.IllegalStateException
public boolean isPlaying()
IQHVCPlayer
isPlaying
in interface IQHVCPlayer
public void pause() throws java.lang.IllegalStateException
IQHVCPlayer
pause
in interface IQHVCPlayer
java.lang.IllegalStateException
public boolean isPaused()
IQHVCPlayer
isPaused
in interface IQHVCPlayer
public void seekTo(int millis) throws java.lang.IllegalStateException
IQHVCPlayer
seekTo
in interface IQHVCPlayer
millis
- 要拖动到的目标时间java.lang.IllegalStateException
public void seekTo(int millis, boolean accurate) throws java.lang.IllegalStateException
IQHVCPlayerAdvanced
seekTo
in interface IQHVCPlayerAdvanced
millis
- 目标时间点,单位:毫秒accurate
- 是否进行精准seek;accurate=false等同于void seekTo(long msec);java.lang.IllegalStateException
public void setPlayBackRate(float rate) throws java.lang.IllegalStateException
IQHVCPlayerAdvanced
setPlayBackRate
in interface IQHVCPlayerAdvanced
rate
- 播放速度,取值1~n(建议n<=5)java.lang.IllegalStateException
public int getCurrentPosition()
IQHVCPlayer
getCurrentPosition
in interface IQHVCPlayer
public int getDuration()
IQHVCPlayer
getDuration
in interface IQHVCPlayer
public void stop() throws java.lang.IllegalStateException
stop
in interface IQHVCPlayer
java.lang.IllegalStateException
public void release()
IQHVCPlayer
release
in interface IQHVCPlayer
public void setMute(boolean mute) throws java.lang.IllegalStateException
IQHVCPlayer
setMute
in interface IQHVCPlayer
mute
- java.lang.IllegalStateException
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 int 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(int handle, int command, long para1, long para2, int user)
onPlayerMsg
in interface com.qihoo.livecloud.play.callback.PlayerCallback
handle
- command
- para1
- para2
- user
- public void onPlayerMsgHandle(int handle, int command, long para1, long para2, int user)
handle
- command
- para1
- para2
- user
- public void onUpdateStatus(int handle, 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
handle
- vbps
- 视频码率abps
- 音频码率vfps
- 视频帧率afps
- 音频帧率fps
- bitrate
- param1
- param2
- user
- public void onUpdateGPPlayState(int handle, long nowTime, long videoBufferTime, long audioBufferTime)
onUpdateGPPlayState
in interface com.qihoo.livecloud.play.callback.PlayerCallback
handle
- nowTime
- videoBufferTime
- audioBufferTime
- public void onMessage(int handle, int id, int type, int flags, int size, long data, long time)
onMessage
in interface com.qihoo.livecloud.play.callback.PlayerCallback
handle
- palyerIDid
- 音频流的idtype
- flags
- size
- 数据长度data
- 预留以前是想返回data地址的,后来用共享内存,所以预留了time
- 时间戳public void onUserDefineData(int handle, byte[] data, int length)
onUserDefineData
in interface com.qihoo.livecloud.play.callback.PlayerCallback
handle
- data
- length
- public void setOnProgressChangeListener(IQHVCPlayer.onProgressChangeListener listener)
setOnProgressChangeListener
in interface IQHVCPlayer
public void setVolume(float volume) throws java.lang.IllegalStateException
IQHVCPlayer
setVolume
in interface IQHVCPlayer
volume
- 音量范围 0.0~1.0(1.0最大)java.lang.IllegalStateException
public float getVolume() throws java.lang.IllegalStateException
IQHVCPlayer
getVolume
in interface IQHVCPlayer
java.lang.IllegalStateException
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 fmt, 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
- 录像存储路径(确保有读写权限)fmt
- 存储格式 IQHVCPlayerAdvanced.RecorderFormat
config
- 配置listener
- callbackpublic int stopRecorder()
IQHVCPlayerAdvanced
stopRecorder
in interface IQHVCPlayerAdvanced
public void setOnAudioVolumeListener(IQHVCPlayerAdvanced.OnAudioVolumeListener listener, long period) throws java.lang.IllegalArgumentException
IQHVCPlayerAdvanced
setOnAudioVolumeListener
in interface IQHVCPlayerAdvanced
period
- 回调时间间隔java.lang.IllegalArgumentException
public void setPlayerControlConfig(com.qihoo.livecloud.play.PlayerControl playerControl, int 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 enableP2P(boolean enable)
enableP2P
in interface IQHVCPlayerAdvanced
public static void clearP2PCache()
public static void setP2PCacheSize(int cacheSize)
cacheSize
- 缓冲区大小, 单位MBpublic static void enableP2PUpload(boolean enableUpload)
enableUpload
- true可以上传,false 不可public static void setP2PCacheDir(java.lang.String cacheDir)
cacheDir
- 缓冲路径public void test_hard_decoder_error()
public boolean getRecordingState()