视频播放过程中遇到的问题

一、AVPlayer播放器

1.播放异常问题

1)开始播放时黑屏/花屏一下

原因:没有缓存好数据就开始播放,导致卡顿和解码异常.

解决办法:收到ReadyToPlay后不要立即播放,多缓存1到2秒的数据后再播放

2)画面卡顿:有些视频出现播放几秒画面卡住音频继续播放的问题,检测mp4格式没有问题,android和Windows可以正常播放,Mac不能直接播放会自动下载。

原因:mp4视频编码格式问题,标准mp4格式是H254编码制定使用的标准封装格式。

解决办法:使用AVPlayer+FFmpeg(多媒体转码)共同进行视频流的播放处理。为了解决这个问题,我采用了SGPlayer三方库(支持视频,直播,VR等),设置采用FFmpeg的编码格式。

SGPlayer下载地址:https://github.com/libobjc/SGPlayer

二、SGPlayer播放器

1.遇到问题:

1)当视频的显示模式设置为SGGravityModeResizeAspect时,当视频资源的像素720p(1280*720)时,视频在16:9的视图中会自动变窄,导致视频的资源要是1080p(1920*1080)以上才不变形。所以要设置SGGravityModeResizeAspectFill,全屏时手动改变Player的大小。

2)视频只能听到背景音乐,听不到另一个播放的内容。

原因:视频资源是左右声道分离的视频(左声道只能听到背景音,右声道听到其他声音),可以通过耳机左右两听筒分辨。AVPlayer底层是自动兼容的,然后项目中使用SGPlayer时,因为设置支持FFmpeg的编码格式,所有导致无法合并左右声道的声音。

解决办法:方法一视频资源改成左右声道合并的视频。方法二:代码兼容

你可能感兴趣的:(视频播放过程中遇到的问题)