Воспроизведение звуков одновременно на устройствах iOS - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть 10 звуков в одном представлении. И все они играют, однако одновременно может звучать только один звук. Я хочу, чтобы вы могли нажимать звуки, которые хотите воспроизвести, и все они воспроизводятся одновременно. Но в тот момент, когда вы нажимаете звук, который он воспроизводит, вы переходите к нажатию другого звука, и звук ранее останавливается.

Вот код, который я использовал для звуков

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


}



- (IBAction)twoSound:(id)sender; {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"2" ofType:@"wav"];
    if (theAudio) [theAudio release];
    NSError *error = nil;
    theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&error];
    if (error)
        NSLog(@"%@",[error localizedDescription]);
    theAudio.delegate = self;
    [theAudio play];   

}



- (IBAction)threeSound:(id)sender; {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"3" ofType:@"wav"];
    if (theAudio) [theAudio release];
    NSError *error = nil;
    theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&error];
    if (error)
        NSLog(@"%@",[error localizedDescription]);
    theAudio.delegate = self;
    [theAudio play];   

}

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Это, вероятно, вызывает проблему:

if (theAudio) [theAudio release];

AVAudioPlayer не может продолжить воспроизведение после его выпуска.

Что в основном происходит:
- Нажатие кнопки
- Аудио инициализируется
- theAudio начинает играть
- Еще одно нажатие кнопки
- звук отключен, и воспроизведение прекращается
- Аудио инициализируется с другим звуком
- theAudio начинает играть

0 голосов
/ 15 апреля 2011

Похоже, ваш theAudio глобален, и вы создаете его снова в каждом методеПреобразуйте его в локальную переменную или определите 3 (или сколько вам нужно).

...