按下音量按钮时更改音量滑块位置
Posted
技术标签:
【中文标题】按下音量按钮时更改音量滑块位置【英文标题】:Changing volume slider position when volume buttons pressed 【发布时间】:2017-06-27 10:28:40 【问题描述】:如何将音量按钮与音量滑块连接起来?
我正在使用 AVAudioPlayer 并且滑块音量和物理音量按钮工作正常,但问题是它们是单独工作的,所以我需要实现的是,当我通过音量滑块按下物理音量按钮时也会改变位置。
我的代码如下:
-(IBAction)btnClked:(id)sender
NSURL *musicFile;
musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"music"
ofType:@"mp3"]];
myAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
[self.button setBackgroundImage:[UIImage imageNamed:@"Play.png"] forState:UIControlStateNormal];
if (self.button.tag == 0)
self.button.tag = 1;
[self.button setImage:[UIImage imageNamed:@"Stop.png"] forState:UIControlStateNormal];
[myAudio play];
myAudio.numberOfLoops = -1;
myAudio.currentTime = 0;
myAudio.volume = 0.5;
else
self.button.tag = 0;
[self.button setImage:[UIImage imageNamed:@"Play.png"] forState:UIControlStateNormal];
[myAudio stop];
我的滑块更改方法如下所示:
- (IBAction)sliderChange:(UISlider *)sender
myAudio.volume = sender.value / 1;
提前致谢!
【问题讨论】:
使用 MPVolumeView 就可以了 :) 【参考方案1】:使用此 MPVolumeView 设置音量滑块,您可以按照自己的方式自定义...
- (void)showTheVolumeSlider :(UIView *)viewVolumeParent
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:viewVolumeParent.bounds] ;
volumeView.showsRouteButton = NO;
[viewVolumeParent addSubview:volumeView];
// [volumeView setVolumeThumbImage:[UIImage imageNamed:@"thumb.png"] forState:UIControlStateNormal];
[[volumeView subviews] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
if ([obj isKindOfClass:[UISlider class]])
[obj setThumbImage:[UIImage imageNamed:@"thumb.png"]forState:UIControlStateNormal];
*stop = YES;
];
【讨论】:
以上是关于按下音量按钮时更改音量滑块位置的主要内容,如果未能解决你的问题,请参考以下文章
MPMoviePlayerController 自定义音量滑块问题