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 classZegoMediaPlayer.AudioChannelstatic classZegoMediaPlayer.AudioTrackModestatic classZegoMediaPlayer.CacheStat播放器缓存统计static classZegoMediaPlayer.ErrorCodestatic classZegoMediaPlayer.PlayerIndexstatic classZegoMediaPlayer.PlayerViewMode
-
Field Summary
Fields Modifier and Type Field Description static intPlayerTypeAuxstatic intPlayerTypePlayer
-
Constructor Summary
Constructors Constructor Description ZegoMediaPlayer()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclearView()清除播放控件播放结束后, 在控件上保留的最后一帧画面voidenableAccurateSeek(boolean enable)设置是否开启精准搜索voidenableRepeatMode(boolean enable)Deprecated.请使用 #setLoopCount 代替longgetAudioStreamCount()获取音轨个数longgetCurrentDuration()获取当前的播放时间longgetCurrentRenderingDuration()获取当前的播放渲染时间longgetDuration()获取整个文件的播放时长java.lang.StringgetMetaDataValue(java.lang.String key)通过键值获取保存在媒体文件中的元数据信息booleangetOnlineResourceCacheStat(ZegoMediaPlayer.CacheStat stat)获取网络素材缓存队列的缓存数据可播放的时长和缓存数据大小intgetPlayVolume()获取本地播放音量intgetPublishVolume()获取推流音量voidinit(int playerType)Deprecated.请使用 init(int playerType, int playerIndex) 代替voidinit(int playerType, int playerIndex)初始化播放器voidload(android.net.Uri uri)预加载资源voidload(android.net.Uri uri, long startPosition)预加载资源voidload(java.lang.String path)预加载资源voidload(java.lang.String path, long startPosition)预加载资源voidload(java.nio.ByteBuffer data, long startPosition)预加载资源voidloadCopyrightedMusic(java.lang.String resourceId, long startPosition)预加载资源voidmuteLocal(boolean mute)设置本地静默播放voidpause()暂停播放booleanrequireHWDecoder()设置使用硬件解码。voidresume()恢复播放voidseekTo(long millisecond)设置指定的进度进行播放voidsetAccurateSeekTimeout(long timeoutInMS)设置精确搜索的超时时间voidsetActiveAudioChannel(int channel)设置播放声道voidsetAudioChannelKeyShift(int channel, float value)设置声道音调voidsetAudioPlayCallback(IZegoMediaPlayerAudioPlayCallback callback)设置播放器音频数据回调,回调数据为 PCMvoidsetAudioPublishStream(long streamIndex)设置媒体文件需要推流的音轨longsetAudioStream(long streamIndex)设置播放媒体文件的音轨voidsetAudioTrackMode(int mode)设置播放器的音轨模式voidsetBackgroundColor(int color)设置播放的背景颜色voidsetBlockDataCallback(IZegoMediaPlayerBlockDataCallback callback, int blockSize)设置媒体播放器资源块数据回调voidsetBufferThreshold(int threshold)设置缓冲回调的阈值, 缓冲区可播放时长大于阈值时, 开始播放, 并回调 OnBufferEndvoidsetEventWithIndexCallback(IZegoMediaPlayerWithIndexCallback callback)设置多实例播放器事件回调voidsetHttpHeaders(java.util.Map<java.lang.String,java.lang.String> headers)设置 http 网络资源的http headersvoidsetLoadResourceTimeout(int timeout)设置加载资源的超时时间voidsetLoopCount(int loopCount)设置循环播放次数voidsetMediaPlayerFileReader(ZegoMediaPlayerFileReader reader)设置播放文件操做回调接口, 调用该接口后,内部播放视频时,进行的文件操作将会通过ZegoMediaPlayerFileReader接口 需要用户实现voidsetMediaSideInfoCallback(IZegoMediaPlayerMediaSideInfoCallback callback)设置播放文件 SEI 信息回调voidsetOnlineResourceCache(int timeInMS, int sizeInByte)设置网络素材最大的缓存时长和缓存数据大小, 以先达到者为准voidsetPlayerType(int playerType)设置播放器类型voidsetPlayMediaStreamType(int type)设置媒体播放器播放的媒体流类型,用于仅播放音频流或者视频流的场景voidsetPlaySpeed(float speed)设置本地播放倍速voidsetPlayVolume(int volume)设置本地播放音量booleansetProcessInterval(long interval)设置播放进度回调间隔。voidsetPublishVolume(int volume)设置推流音量voidsetVideoPlayWithIndexCallback(IZegoMediaPlayerVideoPlayWithIndexCallback callback, int format)设置多实例播放器视频帧数据回调, 格式为ARGB32/ABGR32/RGBA32/BGRA32voidsetVideoPlayWithIndexCallback2(IZegoMediaPlayerVideoPlayWithIndexCallback2 callback, int format)设置多实例播放器视频帧数据回调, 格式为I420/NV12/NV21voidsetView(java.lang.Object view)设置显示视频的viewvoidsetViewMode(int mode)设置视频控件的显示模式voidsetVolume(int volume)设置本地播放音量, 如果播放器设置了推流模式, 也会设置推流音量voidstart(android.net.Uri uri, long startPosition)开始播放voidstart(java.lang.String path, boolean repeat)Deprecated.请使用 start(String path, long startPosition) 代替,如果需要设置循环次数,使用 setLoopCount 接口voidstart(java.lang.String path, boolean repeat, long startPosition)Deprecated.请使用 start(String path, long startPosition) 代替,如果需要设置循环次数,使用 setLoopCount 接口voidstart(java.lang.String path, long startPosition)开始播放voidstart(java.nio.ByteBuffer data, long startPosition)开始播放voidstartCopyrightedMusic(java.lang.String resourceId, long startPosition)开始播放voidstop()结束播放voidtakeSnapshot()获取当前播放视频的截图voiduninit()释放播放器voidupdatePosition(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
-
-