我试图制作一个控制背景音乐音量的UISlider,无论我设置的值应该是音乐的音量。问题是,当我在模拟器中运行应用程序并移动滑块时,音量保持原始音量,它不会更新。
我是编程新手,所以我仍然需要基础知识的帮助。
这是我的viewcontroller.h:
@interface FifthViewController : UIViewController <AVAudioPlayerDelegate> {
IBOutlet UISlider *slider;
IBOutlet UIAlertView *alert;
AVAudioPlayer *theAudio;
}
-(IBAction)alertbutton;
-(IBAction)changeVolume;
@end;
这里是viewcontroller.m:
- (void)viewDidLoad
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"background music" ofType:@"mp3"];
AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play];
theAudio.numberOfLoops = -1;
theAudio.volume=slider.value;
[super viewDidLoad];
}
我已将“滑块”连接到水平滑块,声音播放和循环。如果我在Xcode中设置滑块的值更高或更低,当我运行应用程序时,音量会相应调整。但如果在应用程序中我更改了滑块的值,则音量保持不变。任何人都可以查看我的代码并告诉我我做错了什么以及如何解决它?
答案 0 :(得分:0)
假设您的控制器中有AVAudioPlayer
个设置实例。
将滑块设置为从0.0到1.0运行并将其连接到动作。
-(void)volumeValueChange:(UISlider *)sender
{
(AVAudioPlayer *)myaudioplayer.volume = sender.value;
}
答案 1 :(得分:0)
// .m实现其中audioPlayer是AVAudioPlayer的对象
-(void)volumeValueChange:(UISlider *)sender
{
audioPlayer.volume = sender.value;
}