Class ZegoMediaPlayer
- java.lang.Object
-
- com.zego.zegoavkit2.ZegoMediaPlayer
-
public final class ZegoMediaPlayer extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ZegoMediaPlayer.AudioChannel
static class
ZegoMediaPlayer.AudioTrackMode
static class
ZegoMediaPlayer.CacheStat
播放器缓存统计static class
ZegoMediaPlayer.ErrorCode
static class
ZegoMediaPlayer.PlayerIndex
static class
ZegoMediaPlayer.PlayerViewMode
-
Field Summary
Fields Modifier and Type Field Description static int
PlayerTypeAux
static int
PlayerTypePlayer
-
Constructor Summary
Constructors Constructor Description ZegoMediaPlayer()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
clearView()
清除播放控件播放结束后, 在控件上保留的最后一帧画面void
enableAccurateSeek(boolean enable)
设置是否开启精准搜索void
enableRepeatMode(boolean enable)
Deprecated.请使用 #setLoopCount 代替long
getAudioStreamCount()
获取音轨个数long
getCurrentDuration()
获取当前的播放时间long
getCurrentRenderingDuration()
获取当前的播放渲染时间long
getDuration()
获取整个文件的播放时长java.lang.String
getMetaDataValue(java.lang.String key)
通过键值获取保存在媒体文件中的元数据信息boolean
getOnlineResourceCacheStat(ZegoMediaPlayer.CacheStat stat)
获取网络素材缓存队列的缓存数据可播放的时长和缓存数据大小int
getPlayVolume()
获取本地播放音量int
getPublishVolume()
获取推流音量void
init(int playerType)
Deprecated.请使用 init(int playerType, int playerIndex) 代替void
init(int playerType, int playerIndex)
初始化播放器void
load(android.net.Uri uri)
预加载资源void
load(android.net.Uri uri, long startPosition)
预加载资源void
load(java.lang.String path)
预加载资源void
load(java.lang.String path, long startPosition)
预加载资源void
load(java.nio.ByteBuffer data, long startPosition)
预加载资源void
loadCopyrightedMusic(java.lang.String resourceId, long startPosition)
预加载资源void
muteLocal(boolean mute)
设置本地静默播放void
pause()
暂停播放boolean
requireHWDecoder()
设置使用硬件解码。void
resume()
恢复播放void
seekTo(long millisecond)
设置指定的进度进行播放void
setAccurateSeekTimeout(long timeoutInMS)
设置精确搜索的超时时间void
setActiveAudioChannel(int channel)
设置播放声道void
setAudioChannelKeyShift(int channel, float value)
设置声道音调void
setAudioPlayCallback(IZegoMediaPlayerAudioPlayCallback callback)
设置播放器音频数据回调,回调数据为 PCMvoid
setAudioPublishStream(long streamIndex)
设置媒体文件需要推流的音轨long
setAudioStream(long streamIndex)
设置播放媒体文件的音轨void
setAudioTrackMode(int mode)
设置播放器的音轨模式void
setBackgroundColor(int color)
设置播放的背景颜色void
setBlockDataCallback(IZegoMediaPlayerBlockDataCallback callback, int blockSize)
设置媒体播放器资源块数据回调void
setBufferThreshold(int threshold)
设置缓冲回调的阈值, 缓冲区可播放时长大于阈值时, 开始播放, 并回调 OnBufferEndvoid
setEventWithIndexCallback(IZegoMediaPlayerWithIndexCallback callback)
设置多实例播放器事件回调void
setHttpHeaders(java.util.Map<java.lang.String,java.lang.String> headers)
设置 http 网络资源的http headersvoid
setLoadResourceTimeout(int timeout)
设置加载资源的超时时间void
setLoopCount(int loopCount)
设置循环播放次数void
setMediaPlayerFileReader(ZegoMediaPlayerFileReader reader)
设置播放文件操做回调接口, 调用该接口后,内部播放视频时,进行的文件操作将会通过ZegoMediaPlayerFileReader接口 需要用户实现void
setMediaSideInfoCallback(IZegoMediaPlayerMediaSideInfoCallback callback)
设置播放文件 SEI 信息回调void
setOnlineResourceCache(int timeInMS, int sizeInByte)
设置网络素材最大的缓存时长和缓存数据大小, 以先达到者为准void
setPlayerType(int playerType)
设置播放器类型void
setPlayMediaStreamType(int type)
设置媒体播放器播放的媒体流类型,用于仅播放音频流或者视频流的场景void
setPlaySpeed(float speed)
设置本地播放倍速void
setPlayVolume(int volume)
设置本地播放音量boolean
setProcessInterval(long interval)
设置播放进度回调间隔。void
setPublishVolume(int volume)
设置推流音量void
setVideoPlayWithIndexCallback(IZegoMediaPlayerVideoPlayWithIndexCallback callback, int format)
设置多实例播放器视频帧数据回调, 格式为ARGB32/ABGR32/RGBA32/BGRA32void
setVideoPlayWithIndexCallback2(IZegoMediaPlayerVideoPlayWithIndexCallback2 callback, int format)
设置多实例播放器视频帧数据回调, 格式为I420/NV12/NV21void
setView(java.lang.Object view)
设置显示视频的viewvoid
setViewMode(int mode)
设置视频控件的显示模式void
setVolume(int volume)
设置本地播放音量, 如果播放器设置了推流模式, 也会设置推流音量void
start(android.net.Uri uri, long startPosition)
开始播放void
start(java.lang.String path, boolean repeat)
Deprecated.请使用 start(String path, long startPosition) 代替,如果需要设置循环次数,使用 setLoopCount 接口void
start(java.lang.String path, boolean repeat, long startPosition)
Deprecated.请使用 start(String path, long startPosition) 代替,如果需要设置循环次数,使用 setLoopCount 接口void
start(java.lang.String path, long startPosition)
开始播放void
start(java.nio.ByteBuffer data, long startPosition)
开始播放void
startCopyrightedMusic(java.lang.String resourceId, long startPosition)
开始播放void
stop()
结束播放void
takeSnapshot()
获取当前播放视频的截图void
uninit()
释放播放器void
updatePosition(float[] position)
更新媒体播放器(音频源)位置
-
-
-
Field Detail
-
PlayerTypePlayer
public static final int PlayerTypePlayer
- See Also:
- Constant Field Values
-
PlayerTypeAux
public static final int PlayerTypeAux
- See Also:
- Constant Field Values
-
-
Method Detail
-
init
@Deprecated public void init(int playerType)
Deprecated.请使用 init(int playerType, int playerIndex) 代替初始化播放器- Parameters:
playerType
- 播放器类型,有 PlayerTypePlayer, PlayerTypeAux 两种
-
init
public void init(int playerType, int playerIndex)
初始化播放器- Parameters:
playerType
- 播放器类型,有 PlayerTypePlayer, PlayerTypeAux 两种playerIndex
- 播放器实例序号,详见ZegoMediaPlayer.PlayerIndex
-
uninit
public void uninit()
释放播放器
-
setEventWithIndexCallback
public void setEventWithIndexCallback(IZegoMediaPlayerWithIndexCallback callback)
设置多实例播放器事件回调- Parameters:
callback
-- See Also:
IZegoMediaPlayerWithIndexCallback
-
setVideoPlayWithIndexCallback
public void setVideoPlayWithIndexCallback(IZegoMediaPlayerVideoPlayWithIndexCallback callback, int format)
设置多实例播放器视频帧数据回调, 格式为ARGB32/ABGR32/RGBA32/BGRA32- Parameters:
callback
-format
- 需要返回的视频帧格式 @see ZegoVideoDataFormat- See Also:
IZegoMediaPlayerVideoPlayWithIndexCallback
-
setVideoPlayWithIndexCallback2
public void setVideoPlayWithIndexCallback2(IZegoMediaPlayerVideoPlayWithIndexCallback2 callback, int format)
设置多实例播放器视频帧数据回调, 格式为I420/NV12/NV21- Parameters:
callback
-format
- 需要返回的视频帧格式 @see ZegoVideoDataFormat- See Also:
IZegoMediaPlayerVideoPlayWithIndexCallback2
-
setAudioPlayCallback
public void setAudioPlayCallback(IZegoMediaPlayerAudioPlayCallback callback)
设置播放器音频数据回调,回调数据为 PCM- Parameters:
callback
- 接收音频数据的回调实例 @see IZegoMediaPlayerAudioPlayCallback
-
setMediaSideInfoCallback
public void setMediaSideInfoCallback(IZegoMediaPlayerMediaSideInfoCallback callback)
设置播放文件 SEI 信息回调- Parameters:
callback
- 接收文件 SEI 信息的回调实例 @see IZegoMediaPlayerMediaSideInfoCallback
-
setMediaPlayerFileReader
public void setMediaPlayerFileReader(ZegoMediaPlayerFileReader reader)
设置播放文件操做回调接口, 调用该接口后,内部播放视频时,进行的文件操作将会通过ZegoMediaPlayerFileReader接口 需要用户实现- Parameters:
reader
-- See Also:
ZegoMediaPlayerFileReader
-
setBlockDataCallback
public void setBlockDataCallback(IZegoMediaPlayerBlockDataCallback callback, int blockSize)
设置媒体播放器资源块数据回调- Parameters:
callback
- 回调blockSize
- 最小加密块数据的大小,OnBlockData 回调中的 size 为 blockSize 整数倍
-
start
@Deprecated public void start(java.lang.String path, boolean repeat)
Deprecated.请使用 start(String path, long startPosition) 代替,如果需要设置循环次数,使用 setLoopCount 接口开始播放- Parameters:
path
- 媒体文件的路径repeat
- 是否重复播放
-
start
@Deprecated public void start(java.lang.String path, boolean repeat, long startPosition)
Deprecated.请使用 start(String path, long startPosition) 代替,如果需要设置循环次数,使用 setLoopCount 接口开始播放注意:当 startPosition 超过播放总时长,将从头开始播放
- Parameters:
path
- 媒体文件的路径repeat
- 是否重复播放startPosition
- 指定开始播放的进度,单位毫秒
-
start
public void start(java.lang.String path, long startPosition)
开始播放注意:
当 startPosition 超过播放总时长,将从头开始播放
调用 setLoopCount 接口设置循环播放次数- Parameters:
path
- 媒体文件的路径startPosition
- 指定开始播放的进度,单位毫秒
-
start
public void start(android.net.Uri uri, long startPosition)
开始播放注意:
当 startPosition 超过播放总时长,将从头开始播放
调用 setLoopCount 接口设置循环播放次数- Parameters:
uri
- 媒体文件 UristartPosition
- 指定开始播放的进度,单位毫秒
-
start
public void start(java.nio.ByteBuffer data, long startPosition)
开始播放注意:
媒体数据要使用 ByteBuffer 的 allocateDirect 模式
当 startPosition 超过播放总时长,将从头开始播放
调用 setLoopCount 接口设置循环播放次数- Parameters:
data
- 媒体数据,要使用 allocateDirect 模式startPosition
- 指定开始播放的进度,单位毫秒
-
startCopyrightedMusic
public void startCopyrightedMusic(java.lang.String resourceId, long startPosition)
开始播放注意:
当 startPosition 超过播放总时长,将从头开始播放
调用 setLoopCount 接口设置循环播放次数- Parameters:
resourceId
- 通过版权模块获取的资源 IDstartPosition
- 指定开始播放的进度,单位毫秒
-
stop
public void stop()
结束播放
-
pause
public void pause()
暂停播放
-
resume
public void resume()
恢复播放
-
seekTo
public void seekTo(long millisecond)
设置指定的进度进行播放- Parameters:
millisecond
- 指定的进度,单位毫秒
-
enableAccurateSeek
public void enableAccurateSeek(boolean enable)
设置是否开启精准搜索注意:播放文件之前调用,即Start或Load前,播放过程中调用不起作用,但可能对下个文件的播放起作用.
- Parameters:
enable
- 是否开启
-
setAccurateSeekTimeout
public void setAccurateSeekTimeout(long timeoutInMS)
设置精确搜索的超时时间注意:如果不设置, SDK 内部默认是设置 5000 毫秒
- Parameters:
timeoutInMS
- 超时时间, 单位毫秒. 有效值区间 [2000, 10000]
-
getDuration
public long getDuration()
获取整个文件的播放时长- Returns:
- 文件的播放时长,单位毫秒
-
getCurrentDuration
public long getCurrentDuration()
获取当前的播放时间- Returns:
- 当前的播放时间,单位毫秒
-
getCurrentRenderingDuration
public long getCurrentRenderingDuration()
获取当前的播放渲染时间- Returns:
- 当前的播放渲染时间,单位毫秒
-
setView
public void setView(java.lang.Object view)
设置显示视频的view- Parameters:
view
- 用于渲染视频的view, 推荐使用TextureView
, 也可以使用SurfaceView
或Surface
-
setVolume
public void setVolume(int volume)
设置本地播放音量, 如果播放器设置了推流模式, 也会设置推流音量- Parameters:
volume
- 音量,取值范围[0, 200],默认 60
-
setPlayVolume
public void setPlayVolume(int volume)
设置本地播放音量- Parameters:
volume
- 音量,取值范围[0, 200],默认 60
-
setPublishVolume
public void setPublishVolume(int volume)
设置推流音量- Parameters:
volume
- 音量,取值范围[0, 200],默认 60
-
getPlayVolume
public int getPlayVolume()
获取本地播放音量
-
getPublishVolume
public int getPublishVolume()
获取推流音量
-
setPlaySpeed
public void setPlaySpeed(float speed)
设置本地播放倍速注意:
在回调onPlayStart或onLoadComplete之后设置- Parameters:
speed
- 倍速,取值范围[0.3, 4.0],默认 1.0
-
setAudioStream
public long setAudioStream(long streamIndex)
设置播放媒体文件的音轨- Parameters:
streamIndex
- 音轨序号,可以通过 getAudioStreamCount 接口获取音轨个数
-
setAudioPublishStream
public void setAudioPublishStream(long streamIndex)
设置媒体文件需要推流的音轨注意:该接口需要通过 SetAudioTrackMode 开启多音轨模式下才生效
- Parameters:
streamIndex
- 音轨序号,可以通过 getAudioStreamCount 接口获取音轨个数
-
setAudioTrackMode
public void setAudioTrackMode(int mode)
设置播放器的音轨模式注意:
当指定多音轨模式时需要搭配 SetAudioPublishStream 一起使用,用于支持本地播放和推流分别使用不同的音轨
仅在开始播放 start 前调用生效- Parameters:
mode
- 音轨模式,参见 ZegoMediaPlayer.AudioTrackMode 定义
-
setPlayerType
public void setPlayerType(int playerType)
设置播放器类型- Parameters:
playerType
- PlayerTypePlayer, PlayerTypeAux
-
getAudioStreamCount
public long getAudioStreamCount()
获取音轨个数- Returns:
- 音轨个数
-
enableRepeatMode
@Deprecated public void enableRepeatMode(boolean enable)
Deprecated.请使用 #setLoopCount 代替设置是否循环播放- Parameters:
enable
- 是否循环播放
-
setLoopCount
public void setLoopCount(int loopCount)
设置循环播放次数注意:默认是不循环播放
- Parameters:
loopCount
- 循环次数,-1 表示无限循环,0 表示不循环,大于 0 表示循环次数,实际播放次数为 (loopCount+1)
-
takeSnapshot
public void takeSnapshot()
获取当前播放视频的截图注意: 只有在调用 setView 设置了显示控件,以及播放状态的情况下,才能正常截图。
-
muteLocal
public void muteLocal(boolean mute)
设置本地静默播放注意: 如果设置了 PlayerTypeAux 模式, 推出的流是有声音的
- Parameters:
mute
- 是否静默播放
-
load
public void load(java.lang.String path)
预加载资源注意: 如果是视频, 会将首帧画面显示在显示控件上(通过 setView 设置的). 之后需要播放资源时请调用 resume 接口
- Parameters:
path
- 媒体文件的路径
-
load
public void load(android.net.Uri uri)
预加载资源注意: 如果是视频, 会将首帧画面显示在显示控件上(通过 setView 设置的). 之后需要播放资源时请调用 resume 接口
- Parameters:
uri
- 媒体文件的路径 Uri
-
load
public void load(java.lang.String path, long startPosition)
预加载资源注意: 如果是视频, 会将首帧画面显示在显示控件上(通过 setView 设置的). 之后需要播放资源时请调用 resume 接口. 当 startPosition 超过播放总时长,将从头开始播放
- Parameters:
path
- 媒体文件的路径startPosition
- 指定开始播放的进度,单位毫秒
-
load
public void load(android.net.Uri uri, long startPosition)
预加载资源注意: 如果是视频, 会将首帧画面显示在显示控件上(通过 setView 设置的). 之后需要播放资源时请调用 resume 接口. 当 startPosition 超过播放总时长,将从头开始播放
- Parameters:
uri
- 媒体文件的路径 UristartPosition
- 指定开始播放的进度,单位毫秒
-
load
public void load(java.nio.ByteBuffer data, long startPosition)
预加载资源注意:
媒体数据要使用 ByteBuffer 的 allocateDirect 模式
如果是视频, 会将首帧画面显示在显示控件上(通过 setView 设置的).
之后需要播放资源时请调用 resume 接口.
当 startPosition 超过播放总时长,将从头开始播放- Parameters:
data
- 媒体数据,要使用 allocateDirect 模式startPosition
- 指定开始播放的进度,单位毫秒
-
loadCopyrightedMusic
public void loadCopyrightedMusic(java.lang.String resourceId, long startPosition)
预加载资源注意: 如果是视频, 会将首帧画面显示在显示控件上(通过 setView 设置的). 之后需要播放资源时请调用 resume 接口. 当 startPosition 超过播放总时长,将从头开始播放
- Parameters:
resourceId
- 通过版权模块获取的资源 IDstartPosition
- 指定开始播放的进度,单位毫秒
-
setProcessInterval
public boolean setProcessInterval(long interval)
设置播放进度回调间隔。注意:设置 interval 大于 0 时,就会收到 onProcessInterval 回调。interval = 0 时,停止回调。回调不会严格按照设定的回调间隔值返回,而是以处理音频帧或者视频帧的频率来判断是否需要回调。
- Parameters:
interval
- 回调间隔,单位毫秒。有效值为大于等于 0。默认值为 0。
-
requireHWDecoder
public boolean requireHWDecoder()
设置使用硬件解码。注意:需要在加载媒体资源之前设置,即在 start 或者 load 之前。即使设置了使用硬件解码,引擎也会根据当前硬件情况决定是否使用。多次调用没有影响。
- Returns:
- 返回 true 调用成功, false 调用失败
-
setViewMode
public void setViewMode(int mode)
设置视频控件的显示模式- Parameters:
mode
- 视频控件显示模式。 详见 ZegoMediaPlayer#PlayerViewMode
-
setBackgroundColor
public void setBackgroundColor(int color)
设置播放的背景颜色- Parameters:
color
- 颜色,取值为0x00RRGGBB
-
clearView
public void clearView()
清除播放控件播放结束后, 在控件上保留的最后一帧画面
-
setActiveAudioChannel
public void setActiveAudioChannel(int channel)
设置播放声道- Parameters:
channel
- 声道, 参见 ZegoMediaPlayer.AudioChannel 定义. 播放器初始化时默认是 ZegoMediaPlayer.AudioChannel.All
-
setAudioChannelKeyShift
public void setAudioChannelKeyShift(int channel, float value)
设置声道音调- Parameters:
channel
- 声道, 参见 ZegoMediaPlayer.AudioChannel 定义, 可选择设置左声道、右声道、左右声道,当只设置一个声道时,另一个声道保持原值value
- 音调偏移值, 有效值范围 [-8.0, 8.0], 播放器初始化时默认是 0
-
setOnlineResourceCache
public void setOnlineResourceCache(int timeInMS, int sizeInByte)
设置网络素材最大的缓存时长和缓存数据大小, 以先达到者为准注意: 在 start 或者 load 之前调用, 设置一次, 生命周期内一直有效. timeInMS 和 sizeInByte 不允许同时为 0. SDK 内部默认 timeInMS 为 5000, sizeInByte 为 15*1024*1024
- Parameters:
timeInMS
- 缓存最大时长, 单位 ms, 有效值为大于等于 2000, 如果填 0, 表示不限制sizeInByte
- 缓存最大尺寸, 单位 byte, 有效值为大于等于 5000000, 如果填 0, 表示不限制
-
getOnlineResourceCacheStat
public boolean getOnlineResourceCacheStat(ZegoMediaPlayer.CacheStat stat)
获取网络素材缓存队列的缓存数据可播放的时长和缓存数据大小- Parameters:
stat
- 返回的缓存数据可播放的时长和缓存数据大小- Returns:
- 返回 true 调用成功, false 调用失败
-
setBufferThreshold
public void setBufferThreshold(int threshold)
设置缓冲回调的阈值, 缓冲区可播放时长大于阈值时, 开始播放, 并回调 OnBufferEnd注意: 在 start 或者 load 之前调用, 设置一次, 生命周期内一直有效. SDK 默认值是 5000ms
- Parameters:
threshold
- 回调 OnBufferEnd 的阈值, 单位 ms
-
setLoadResourceTimeout
public void setLoadResourceTimeout(int timeout)
设置加载资源的超时时间注意: 在 start 或者 load 之前设置, 设置一次, 生命周期内一直有效, 当打开文件超过设定超时时间,会失败并回调 onPlayError. , SDK 默认会一直等待
- Parameters:
timeout
- 超时时间, 单位 ms, 有效值为大于等于 1000
-
getMetaDataValue
public java.lang.String getMetaDataValue(java.lang.String key)
通过键值获取保存在媒体文件中的元数据信息- Parameters:
key
- 要获取元数据的键值- Returns:
- 指定键值对应的元数据信息。媒体文件未加载或元数据中没有指定的键值时,将返回空字符串。
-
setHttpHeaders
public void setHttpHeaders(java.util.Map<java.lang.String,java.lang.String> headers)
设置 http 网络资源的http headers- Parameters:
headers
- http headers, 每一个 key 和 value 不大于 512 字节
-
updatePosition
public void updatePosition(float[] position)
更新媒体播放器(音频源)位置- Parameters:
position
- 用户的三维空间坐标注意:
1. 此接口需要与 RangeAudio/RangeScene 模块配合使用,RangeAudio/RangeScene 模块开启 3D 音效后,此接口才能调用成功。
2. 此接口需要在 init 后,uninit 前调用。
-
setPlayMediaStreamType
public void setPlayMediaStreamType(int type)
设置媒体播放器播放的媒体流类型,用于仅播放音频流或者视频流的场景- Parameters:
type
- 媒体流类型,详见ZegoConstants.ZegoMediaStreamType
-
-