【问题标题】:How to fix AVPlayer position on scrollable view or How to fix it in a view如何在可滚动视图上修复 AVPlayer 位置或如何在视图中修复它
【发布时间】:2016-06-08 12:18:12
【问题描述】:

有人知道如何在可滚动视图上修复 AVPlayer 位置吗?我正在使用以下代码设置 AVPlayer 框架,但是当设备大小发生变化时,它在不同大小上保持相同大小,而且我有一个可滚动的鉴于此代码,我在后台使用视图滚动,并且播放器保持固定在一个地方。任何帮助表示赞赏。

   //here is my code

     - (void)viewDidLoad {
          [super viewDidLoad];

    NSString *localfilepath=[NSString stringWithFormat:@"%@",[managedObject valueForKey:@"clip_path"]];

    player = [AVPlayer playerWithURL:url];

    AVPlayerViewController *controller = [[AVPlayerViewController alloc] init];

   [self addChildViewController:controller];
   [self.view addSubview:controller.view];

   controller.view.frame = CGRectMake(10,80,300,250);
   controller.player = player;
   controller.showsPlaybackControls = YES;

   [player pause];

 }

【问题讨论】:

  • 如何实现UIScrollViewDelegate的方法-scrollViewDidScroll,在里面可以设置AVPlayerView的frame
  • 我没有得到?你会怎么做@J.Hunter
  • 另一种方式:不要将avplayer视图添加为滚动视图的子视图,将avplayer视图和滚动视图添加到与子视图相同的视图中,就像avplayer和滚动视图是兄弟视图一样。
  • @J.Hunter 在这段代码中,我没有使用任何滚动视图,但如果我在 iPhone 5s 上使用相同的代码,它看起来不错,但如果屏幕尺寸增加,播放器会进入一个角落,所以我想要使其适用于所有屏幕尺寸或使其灵活
  • 你试过自动布局吗?也许在您的 avplayer 视图中添加四个约束 - 宽度、高度、centerX 和 centerY 可以解决您的问题

标签: ios avplayer cgrectmake avplayerviewcontroller


【解决方案1】:

像这样:

1.您的视图控制器符合 UIScrollViewDelegate 协议
2.in - (void)viewDidLoad, 将你的滚动视图的委托设置为self,比如

self.scrollView.delegate = self;

3.implement - (void)scrollViewDidScroll:(UIScrollView *)scrollView,例如

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGPoint offset = scrollView.contentOffset;
    UIView *avplayerView = [self getAVPlayerView];
    avplayerView.frame = CGRectMake(10, 80 + offset.y, 300, 250);
}

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    相关资源
    最近更新 更多