首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加到AVPlayerViewController contentOverlayView上的AVPlayerViewController没有响应

添加到AVPlayerViewController contentOverlayView上的AVPlayerViewController没有响应
EN

Stack Overflow用户
提问于 2015-12-30 11:52:24
回答 1查看 2.4K关注 0票数 5

我试图在UISlider中添加一个AVPlayerViewController来控制卷,为此,我在'AVPlayerViewController.contentOverlayView‘上添加了一个UISlider。UISlider不允许我拖动,就好像它没有被启用,并且它的选择器操作方法'changeVolumeLevelOfPlayer‘没有被调用。

这是我的代码:

代码语言:javascript
复制
-(void)viewDidLoad {

 [super viewDidLoad];

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];

 [[AVAudioSession sharedInstance] setActive:YES error:nil];

 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

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

 AVPlayer *player = [AVPlayer playerWithURL:[self getVideoURLAtIndex:[self.indexOfCurrentTrailer intValue]]];

 avPlayerViewController.player = player;

 avPlayerViewController.delegate = self;

 [player play];

 avPlayerViewController.view.frame = CGRectMake(0, 0, 300, 250);

 UISlider *sliderForVolumeControl = [[UISlider alloc] initWithFrame:CGRectMake(0, avPlayerViewController.view.frame.size.height/2, 100, 40)];

 [sliderForVolumeControl setMinimumValue:0.0];

 [sliderForVolumeControl setMaximumValue:1.0];

 [sliderForVolumeControl setValue:0.5];

 sliderForVolumeControl.continuous = YES;

 [sliderForVolumeControl setBackgroundColor:[UIColor orangeColor]];

 [sliderForVolumeControl addTarget:self action:@selector(changeVolumeLevelOfPlayer:) forControlEvents:UIControlEventValueChanged];

 [sliderForVolumeControl setUserInteractionEnabled:YES];

 [sliderForVolumeControl setEnabled:YES];

 [avPlayerViewController.contentOverlayView addSubview:sliderForVolumeControl];

 [self addChildViewController:avPlayerViewController];

 [self.view addSubview:avPlayerViewController.view];

 [avPlayerViewController didMoveToParentViewController:self];

 [player addObserver:self forKeyPath:@"status" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial) context:nil];

}

 -(void)changeVolumeLevelOfPlayer:(UISlider *)sender {

    player.volume = sender.value;

 }
EN

回答 1

Stack Overflow用户

发布于 2016-01-05 10:02:40

苹果文档上的:

使用内容覆盖视图在、视频内容和控件之间添加其他自定义视图。

所以看起来是这样的:(在您的UISlider上有一堆其他层)

要使它工作,只需更改这一行:

代码语言:javascript
复制
[avPlayerViewController.contentOverlayView addSubview:sliderForVolumeControl];

对此:

代码语言:javascript
复制
[avPlayerViewController.view addSubview:sliderForVolumeControl];
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34529065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档