跳转至

IOS

MGPMediaPlayerDelegate

API 回调时机 参数说明
preparedMediaItem: 播放video加载成功回调,可以获取在此以后可以获取视频相关信息 item 传入播放item,只可读
renderStartedMediaItem: 渲染第一帧画面回调,只要有画面播放以后就会有这个回调,与audioStartedMediaItem可能同时都会回调 item 传入播放item,只可读
audioStartedMediaItem: 渲染第一帧音频回调,只要有声音就会有这个回调,与renderStartedMediaItem可能同时回调 item 传入播放item,只可读
mediaItem:seeking: seek开始or结束回调 item 传入播放item,只可读; seeing seek状态回调
mediaItem:suspend:type: 缓冲资源不足回调 item 传入播放item,只可读; suspend YES 缓冲中,NO 缓冲结束;
MGPPlayerBufferTypeFirstLoad = 0,首次加载缓冲;MGPPlayerBufferTypePlayingLoad = 1,播放过程中缓冲 MGPPlayerBufferTypeSeekLoad = 2,seek缓冲;MGPPlayerBufferTypeFasterLoad = 3,倍速播缓冲;MGPPlayerBufferTypeSmoothChangeLoad = 4,无缝切换缓冲;MGPPlayerBufferTypeAccurateSeekLoad = 5,精准seek缓冲;MGPPlayerBufferTypePerByPerPlayLoad = 6,单步播放缓冲;MGPPlayerBufferTypeInternetBrokenLoad = 8业务层告知断网状态下的缓冲
mediaItem:duraction:currentTime: 播放时间在playing时回调每秒回调一次,seeking和suspend是不回调 item 传入播放item,只可读; duraction 视频时长;currentTime 视频当前时间
mediaItem:updateBufferProgress:position: 播放缓存进度回调 item 传入播放item,只可读; progress 进度;time 视频当前缓冲到的时间
mediaItem:timeoutType:error: 业务超时回调,回调后调用1.stop,2.重试,3重试失败后报错 item 传入播放item,只可读; type 超时原因;error 超时错误
mediaItem:completedWithError: 播放结束回调。error 不等于nil时1.stop,2.重试,3重试失败后报错 item 传入播放item,只可读; error 播放报错,正常结束为nil
mediaItem:changedInternalStatus: 内部状态更新回调 item 传入播放item,只可读;status 播放器内部的状态
mediaItem:playError: 播放报错回调,回调后调用1.stop,2.重试,3重试失败后报错 item 传入播放item,只可读;error 播放报错
mediaItem:handleDownloadDataError:params: 网络错误回调,不需要特殊处理 item 传入播放item,只可读; dataError 错误类型;parms 错误信息
operationWarnning: 改变播放器状态异常回调,只是用来通知调用方式不对 warnningInfo 错误信息
mediaItem:audioEffectIsValided: 是否可以开启音效 valided == YES 可以开启
mediaItem:onClockPTSWithInfo 时钟信息回调
clockType == 0 时钟回调调试 : clockValue1(流原始pts) clockValue2(当前视频帧时间戳)clockValue3(当前进度时间);
clockType == 1 设置位置位置回调 :clockValue1(闹钟时间) clockValue2(流原始pts)clockValue3(时钟通知时当前播放位置);
clockType == 2 设置pts区间回调 :clockValue1(流原始pts) clockValue2(时钟起始pts)clockValue3(闹钟结束pts);
clockType == 3 时钟seek : clockValue1(流原始pts) clockValue2(视频帧时间戳)clockValue3(seek计数);
clockType == 4 设置pts区间第一次超过endPts : clockValue1(流原始pts) clockValue2(闹钟起始pts)clockValue3(闹钟结束pts);
clockType == 5 时钟stop : clockValue1(0) clockValue2(0)clockValue3(0);
clockType == 6 时钟seek : clockValue1(流原始pts) clockValue2(视频帧时间戳)clockValue3(当前进度时间);
smoothSwitchDownloadKeyFrameInfoWithMediaItem: 通知获取item对应关键帧信息 item 传入播放item,只可读
smoothSwitchCompletedWithMediaItem: 无缝切换完成,当前播放item对应video item 传入播放item,只可读
smoothSwitchFailedWithMediaItem: 无缝切换失败 可以重试 item 传入播放item,只可读; error 播放器报错
smoothSwitchFailedWithMediaItem: 无缝切换失败 报错以后,重新start播放 item 传入播放item,只可读;error 播放器报错
mediaItem:smoothSwitchStatus: 无缝切换状态回调 item 传入播放item,只可读;status 状态

MGPMediaPlayerConfig

API 参数说明
corePlayerType 内核类型 默认MGTV内核,苹果内核不生效
decoderType 解码器类型
specificRenderType 是否有特殊渲染效果
onlyHardwareDecoder 是否只使用硬解码器
lowLatency 是否开启直播低时延
accurateSeek 是否开启精准seek
backgroundPlay 是否开启后台播放
cacheDNS 是否开启DNS缓存
cacheDNSTimeOut DNS缓存超时,单位 s
DNSFamilyType 播放器支持IP地址版本
addrinfoTimeout 域名解析超时时间 单位s
slowConnectionSpeedTimeOut 弱网超时 单位s
playingTimeOut 播放器播放中缓冲超时时间,单位 s
prePareTimeOut 播放器预加载缓冲超时时间,单位 s
onlyAudio 是否只播放音频
skipErrorTs 是否跳过错误ts
completedCanSeek 设置播放结束后还可以正常seek
enableMissAudio 设置允许缺失音频播放
enableSkipErrTsToCompleted 允许跳过出错TS,一直到播放完成为止

MGPMediaPlayer

API 说明
rate 播放速度,范围0-1
volume 播放器音量只影响当前播放器实例,范围0-1
playerWithConfig: config传入以后不能修改
initWithConfig: config传入以后不能修改
playerWithConfig: config传入以后不能修改
prepareWithMediaInfo: mediaInfo传入以后不能修改,不要复用mediaInfo,预加载,需要调用resume才会起播,调用后状态变为 MGPMediaPlayerStatusLoading
startWithMediaInfo: mediaInfo传入以后不能修改,不要复用mediaInfo,预加载,调用后状态变为 MGPMediaPlayerStatusPlaying
resume 只在MGPMediaPlayerStatusLoading,MGPMediaPlayerStatusPaused有效,调用成功后状态变为MGPMediaPlayerStatusPlaying
pause 只在MGPMediaPlayerStatusLoading,MGPMediaPlayerStatusPlaying有效,调用成功后状态变为MGPMediaPlayerStatusPaused
stop 播放器结束或者重启播放必须调用, 调用后状态变为MGPMediaPlayerStatusStoped
seekToTime: 让视频在指定器时间播放,只能在播放中才能生效 ,起播前设置播放时间调用MGMediaInfoItem.lastPlayTime,默认误差10s,设置关键帧信息以后误差5s,开启精准seek以后无误差(等待时间长)
pauseLoad 暂停数据加载
resumeLoad 恢复数据加载
loopPlayback:fromPosMs:toPosMs: 循环播放, 播放器启播以后调用才会生效
setFramePtsNotify: 播放器启播以后调用才会生效
setClockFrameNotifyPos: 播放器启播以后调用才会生效
setClockFrameNotifyPts:clockTimeEnd: 播放器启播以后调用才会生效
setStepPlayback: 播放器启播以后调用才会生效,在播放器pause的情况下强制刷新下一帧

MGPMediaInfoItem

API 说明
supportvsr: 判断是否支持超清, 需要item传入definition,videowidth,videoheight
isOnline: 判断MGMediaInfoItem是在线播放还是离线播放,需要判断对象,return YES 在线视频,NO离线视频
videoSessionId: 请求一层接口是时生成,用户当次观看行为的唯一 ID 号表示
fps 视频帧率,一层下发
videoID 视频ID
definition 视频清晰度
audioFormat 一层下发字段 音频压缩格式eg:ACC
videoFormat 一层下发字段 视频压缩格式eg:H264
fileFormat 一层下发字段 视频封装格式eg:MP4
videowidth 一层下发的字段,视频宽(给播放器设置关键帧信息时必选,用于校验关键帧信息
videoheight 一层下发的字段,视频高(给播放器设置关键帧信息时必选,用于校验关键帧信息
isVOD 点播或直播
isAudio 纯音频播放
attemptView 是否是试看
dataSourcePipeline MGPPlayerDataSourcePipelineNormal = 0,纯播放流 ; MGPPlayerDataSourcePipelineP2P = 1,P2P模式;MGPPlayerDataSourcePipelineUnicomFree = 1<<1,联通免流模式; MGPPlayerDataSourcePipelineDrm = 1<<2, drm;MGPPlayerDataSourcePipelineDrmAndP2P,; MGPPlayerDataSourcePipelineP2P
p2pType p2p类型
sourceType 视频数据下载方式
businessType 播放业务类型
videoType 视频类型
md5Result 离线播放视频文件校验结果
retryCount 播放报错后重试次数
lastPlayTime 启播时播放视频开始播放时间
fileDownloadVersion 下载sdk版本号
openudid 设备openudid
cdnIP cdn IP
cdnDomain cdn 域名
originalURL 服务端返回三层原始地址
realURL 播放地址 eg:p2p代理地址 or drm 代理地址 or 免流地址
p2pFileHash p2p taskID
videoFileHash 防篡改hash
offlineFileHash 离线视频文件hash
drmFlag drm加密类型 一层通过drmFlag字段下发,这里音频为20-maes
drmFirm 一层下发 RM厂商类型 音频这里下发一般为 2-自建
drmSolution 一层下发 DRM解决方案类型 6-自研DRM
expressPlayDrmInfo ExpressPlay Drm 必传
fairplayDrmInfo fairplay DRM 必传
hdrVideoIntroduction hdr信息 判断是否是hdr
tsFlowTag 流量标签
hasAD 视频播放前是否先播放广告
hasVideoKeyInfo 一层是否下发关键帧信息
smoothSwitchInfo 无缝切换相关只读
chinaDrmInfo ChinaDRM 必传
audioExtraInfo FM audio 播放必传,对应一层下发字段
focusFirstFrame 强刷第一帧
attempViewType 爆点试看类型
attempViewType 爆点试看类型