Skip to content

RotateVideoPlay

wshichang edited this page Feb 20, 2017 · 4 revisions

##带转角度视频显示处理规则 ###此文档仅适用于1.7.0及1.7.1版本

对于某些带有旋转角度的视频,在播放开始前会触发onInfo中的MEDIA_INFO_VIDEO_ROTATION_CHANGED事件。对于采用不同的播放方式,处理方式略有不同,具体如下:

  1. KSYMediaPlayer + SurfaceView(软解),这种用法在收到MEDIA_INFO_VIDEO_ROTATION_CHANGED后需要用户主动设置播放旋转方向, 此方式只适用于1.7.0及1.7.1版本,从1.7.2及之后版本此逻辑进行了优化用户无需再处理MEDIA_INFO_VIDEO_ROTATION_CHANGED事件,程序内部自动进行角度旋转
public IMediaPlayer.OnInfoListener mOnInfoListener = new IMediaPlayer.OnInfoListener() {
        @Override
        public boolean onInfo(IMediaPlayer iMediaPlayer, int what, int param) {
            switch (what) {
                case KSYMediaPlayer.MEDIA_INFO_VIDEO_ROTATION_CHANGED: 
                   if (ksyMediaPlayer != null){
                        ksyMediaPlayer.setRotateDegree(param);
                   }
                break;

                //其它事件处理
                ......
            }
            return false;
        }
    };
  1. KSYMediaPlayer + SurfaceView(硬解): 目前暂不支持旋转
  2. KSYTextureView: 如果使用此种方式用户无需处理MEDIA_INFO_VIDEO_ROTATION_CHANGED事件,内部会自动处理,但用户层仍可收到此事件。
  3. KSYVideoView(软解): 如果使用此种方式用户也无需处理MEDIA_INFO_VIDEO_ROTATION_CHANGED事件,内部会自动处理,但用户层仍可收到此事件。
  4. KSYVideoView(硬解): 目前暂不支持旋转
Clone this wiki locally