-
Notifications
You must be signed in to change notification settings - Fork 146
floatWin
shixuemei edited this page Mar 15, 2017
·
7 revisions
在APP内,进行多页面切换后,播放窗口以悬浮窗的形式显示在新的页面上,切换过程中不需要销毁播放器并重建,可做到无缝衔接。
v2.0.3及以上的版本中,demo中演示了悬浮窗的设置方法,效果图如下:
-
在悬浮窗显示的UIViewController对象中,获取到全屏显示时创建的播放器对象
-
将播放器对象中的view设置为悬浮窗的窗口大小
-
将播放器对象中view通过addSubView方法添加到悬浮窗UIView上
-
窗口的相关操作,如移动,缩放等,都可以通过悬浮窗的UIView进行控制
-
播放器的相关操作,如停止播放,控制音量等,都可以通过该播放器对象进行控制
其中全屏显示的UIViewController对象为_playerVC,悬浮窗显示的UIViewController对象为_floatVC,播放器对象为player
- 在全屏显示UIViewController对象_playerVC中:
创建播放器对象player以及悬浮窗_floatVC,并将_playerVC设置给_floatVC,以便_floatVC得到_player对象
- (void)viewDidLoad {
[super viewDidLoad];
......
_floatVC = [[KSYFloatVC alloc] init];
_floatVC.playerVC = self;
}
- 在悬浮窗的UIViewController对象_floatVC中:
将播放器对象player的view大小设置为悬浮窗大小,并将player.view添加至悬浮窗的UIView上即可
- (void)viewDidAppear:(BOOL)animated {
if(_playerVC && _playerVC.player)
{
[_playerVC.player.view setFrame: videoView.bounds];
[videoView addSubview: _playerVC.player.view];
}
}