Невозможно воспроизвести звук (WAV) в случае - PullRequest
0 голосов
/ 30 сентября 2011

Мне нужно сыграть короткий звук. Это код, который я написал

В моем заголовке у меня есть:

#import <AVFoundation/AVFoundation.h>

@interface AddItemController : UIViewController < ... , AVAudioPlayerDelegate> {
...
AVAudioPlayer *audio;
}

...
@property (nonatomic, retain) IBOutlet AVAudioPlayer *audio;

@end

В файле .m:

- (void)playSound {
    NSURL *url;
    if (error) {
        url =[NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Resources/error.wav"]];
    } else {
        url =[NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Resources/finished.wav"]];
    }
    audio = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    audio.delegate = self;
    [audio play];
}

-(IBAction)addItem:(id)sender { 
    if ( ... ) {
        error = true;
        [self playSound];
        return;
    }

    ...

    error = false;
    [self playSound];
}

Никаких предупреждений и проблем с кодом. Все остальные функции работают. Просто не слышу ни звука.

#

Ok! Я нашел решение сам. Извините, если я побеспокоил вас.

Надеюсь, мое решение кому-нибудь пригодится.

- (void)playSound
{
    NSURL *url;

    NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"error.aif"];

    if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
        url = [NSURL fileURLWithPath:path];
        audio = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
        [audio prepareToPlay];
    }
    [audio play];
}

1 Ответ

0 голосов
/ 30 сентября 2011

Возможно, вы захотите взглянуть на функции AudioServicesCreateSystemSoundID и AudioServicesPlaySystemSound, из AudioToolbox framework.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...