ChinaCock10.3.3激情版3的TCCSuperPlayerView,让app视频播放更完美

在以前的文章中,有写过如何使用TCCSuperPlayerView实现app的视频播放功能,随着ChinaCock10.3.3激情版3的发布,使得视频播放更完美的与app集成。接下来,我们看看如何使用这个控件的新功能。

在这个版本中,作者新增加一个事件OnBackPress,当用户按下视频播器上面的<返回时触发,其中参数APlayMode,指当前视频播放器的播放模式,AHandled:开发者来控制是否触发OnRequestPlayMode事件。为True时,不触发。下面是我的实现代码:

procedure TPlayVideoForm.CCSuperPlayerView1BackPress(ASender: TObject; APlayMode: TCCSuperPlayerView_PLAYMODE;
  var AHandled: Boolean);
begin
  // 将AHandled设置为True 控件则不会执行返回按钮的操作,就可以自己根据自己的业务情况编写点击返回按钮需要干的事情
  AHandled := false;
  case APlayMode of
    TCCSuperPlayerView_PLAYMODE.PLAYMODE_WINDOW:
      begin
        // showmessage(‘您在窗口模式下点击了返回!‘);
        self.CCSuperPlayerView1.OnPause;
        Close;
        AHandled := True;
      end;
    TCCSuperPlayerView_PLAYMODE.PLAYMODE_FULLSCREEN:
      begin
        if Application.FormFactor.Orientations = [TFormOrientation.Portrait] then
        begin
          self.CCSuperPlayerView1.OnPause;
          Close;
          AHandled := True;
        end;

        // showmessage(‘您在全屏模式下点击了返回!‘);
      end;
    TCCSuperPlayerView_PLAYMODE.PLAYMODE_FLOAT:
      begin
        // showmessage(‘您在浮窗模式下点击了返回!‘);
      end;
  end;
end;

当播放器处在PlayMode_Window,或者处在PlayMode_FullScreen并且是竖屏时,点返回,中止播放并返回到上一个界面。

下面是处理的OnREquestPlayMode事件:

procedure TPlayVideoForm.CCSuperPlayerView1RequestPlayMode(ASender: TObject; APlayMode: TCCSuperPlayerView_PLAYMODE);
begin

  if APlayMode = TCCSuperPlayerView_PLAYMODE.PLAYMODE_FULLSCREEN then
  begin
    self.FullScreen := True;
    CCSuperPlayerView1.Parent := self;
    CCSuperPlayerView1.Align := TAlignLayout.Contents;
    Application.FormFactor.Orientations := [TFormOrientation.Landscape];
  end
  else if APlayMode = TCCSuperPlayerView_PLAYMODE.PLAYMODE_WINDOW then
  begin
    self.FullScreen := false;
    CCSuperPlayerView1.Parent := self.PlayerViewContainorLayout;
    CCSuperPlayerView1.Align := TAlignLayout.Contents;
    CC.Comm.App_BringToFront(com.kinglandsoft.zhlm);
    Application.FormFactor.Orientations := [TFormOrientation.Portrait];
  end
  else if APlayMode = TCCSuperPlayerView_PLAYMODE.PLAYMODE_FLOAT then
  begin
    CC.Comm.App_SendToBack;
  end;
end;

在这个事件中,处理视频播放器在不同模式下,app的适应情况。当进入FullScreen时,设置应用全屏并横置屏幕,达到和市面的app播放一样的效果。在Widows模式,对屏幕做竖向处理。

最后,我们还要处理一下硬件返回,当用户按下这个返回键时,如果在全屏下,自动返回到竖屏,进入Window状态,再点返回,则返回到上一界面。不多说,直接看代码:

procedure TPlayVideoForm.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  if (Key = vkHardwareBack) then
  begin
    case CCSuperPlayerView1.PlayMode of
      TCCSuperPlayerView_PLAYMODE.PLAYMODE_WINDOW:
        begin
          // showmessage(‘您在窗口模式下点击了返回!‘);
          self.CCSuperPlayerView1.OnPause;
          Close;
        end;
      TCCSuperPlayerView_PLAYMODE.PLAYMODE_FULLSCREEN:
        begin
          // RequestPlayMode方法会触发OnRequestPlayMode事件.
          CCSuperPlayerView1.RequestPlayMode(TCCSuperPlayerView_PLAYMODE.PLAYMODE_WINDOW);
          // showmessage(‘您在全屏模式下点击了返回!‘);
        end;
      TCCSuperPlayerView_PLAYMODE.PLAYMODE_FLOAT:
        begin
          CCSuperPlayerView1.RequestPlayMode(TCCSuperPlayerView_PLAYMODE.PLAYMODE_WINDOW);
          // showmessage(‘您在浮窗模式下点击了返回!‘);
        end;
    end;
    Key := 0;
  end;

这里,用到了REquestPlayMode方法,这个方法会触发OnRequestPlayMode事件。这也是该版本实现的方法。

至此,一个高度与app集成,堪称完美的播放器功能就实现了!

感谢专家的努力与付出!再次感谢!!你也想实现,记得进群223717588,但要知道,这是付费的控件。

 

ChinaCock10.3.3激情版3的TCCSuperPlayerView,让app视频播放更完美

上一篇:搭建macaca android环境


下一篇:uni-app需要注意的地方