gpt4 book ai didi

ios - 在 AVPlayerViewController contentOverlayView 上添加的 UISlider 没有响应

转载 作者:可可西里 更新时间:2023-11-01 04:41:07 25 4
gpt4 key购买 nike

我正在尝试添加一个 UISlider 来控制 AVPlayerViewController 中的音量,为此我在“AVPlayerViewController.contentOverlayView”上添加了一个 UISlider。 UISlider 不允许我拖动,就好像它未启用一样,并且它的选择器操作方法“changeVolumeLevelOfPlayer”未被调用。

这是我的代码:

-(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;

}

最佳答案

来自苹果文档:

Use the content overlay view to add additional custom views between the video content and the controls.

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

enter image description here

要使其正常工作,只需更改这一行:

[avPlayerViewController.contentOverlayView addSubview:sliderForVolumeControl];

为此:

[avPlayerViewController.view addSubview:sliderForVolumeControl];

关于ios - 在 AVPlayerViewController contentOverlayView 上添加的 UISlider 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34529065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com