开发者

Adjusting the size the volume, using the same uislider but for multiple sounds

开发者 https://www.devze.com 2023-03-25 19:28 出处:网络
I have 10 sounds in a view. And one uislider This is the code for 1 of the sounds. - (IBAction)oneSound:(id)sender; {

I have 10 sounds in a view. And one uislider

This is the code for 1 of the sounds.

- (IBAction)oneSound:(id)sender; {
    SystemSoundID soundID;
    NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp3"];
    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);
    AudioServicesPlaySystemSound (soundID);
    if (oneAudio) [oneAudio release];
    NSError *error = nil;
    oneAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&error];
    if (error)
        NSLog(@"%@",[error localizedDescription]);
    oneAudio.delegate = self;
    [oneAudio play];    


}

- (void)viewDidLoad {
    [volumeSlider addTarget:self action:@selector(updateVolume) forControlEvents:UIControlEventValueC开发者_如何学Changed];
    [super viewDidLoad];
}



-(void)updateVolume {
    [oneAudio, twoAudio, threeAudio, fourAudio, fiveAudio, sixAudio, sevenAudio, eightAudio, nineAudio, tenAudio, elevenAudio, twelveAudio, thirteenAudio, fourteenAudio, fifthteenAudio, sixteenAudio setVolume:volumeSlider.value];
}

This is the current method I've tried and it doesn't work. Thanks for the help


In updateVolume you can't call on multiple instances by listing them like that. What you should do is put all of these audio players into an array and loop through each and setVolume on each object in the array.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号