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 | 爆点试看类型 |