Проигрывание звуков в iPhone SDK?

У кого-либо есть отрывок, который использует платформу AudioToolBox, которая может использоваться для проигрывания короткого звука? Я был бы благодарен, если бы Вы совместно использовали его со мной и остальной частью сообщества. Везде еще я посмотрел, кажется, не слишком ясен с их кодом.

Спасибо!

7
задан esqew 20 March 2010 в 14:56
поделиться

2 ответа

Вот простой пример использования AVAudioPlayer:

-(void)PlayClick
{
    NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
                                               pathForResource:@"click"
                                               ofType:@"caf"]];
    AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
    [click play];
    [click release];
}

Предполагается, что файл с именем «click.caf» доступен в основном пакете. Поскольку я много играю этот звук, я фактически держу его при себе, чтобы воспроизвести его позже, вместо того, чтобы выпускать его.

11
ответ дан 6 December 2019 в 09:18
поделиться

Я написал простую оболочку Objective-C для AudioServicesPlaySystemSound и друзей:

#import <AudioToolbox/AudioToolbox.h>

/*
    Trivial wrapper around system sound as provided
    by Audio Services. Don’t forget to add the Audio
    Toolbox framework.
*/

@interface Sound : NSObject
{
    SystemSoundID handle;
}

// Path is relative to the resources dir.
- (id) initWithPath: (NSString*) path;
- (void) play;

@end

@implementation Sound

- (id) initWithPath: (NSString*) path
{
    [super init];
    NSString *resourceDir = [[NSBundle mainBundle] resourcePath];
    NSString *fullPath = [resourceDir stringByAppendingPathComponent:path];
    NSURL *url = [NSURL fileURLWithPath:fullPath];

    OSStatus errcode = AudioServicesCreateSystemSoundID((CFURLRef) url, &handle);
    NSAssert1(errcode == 0, @"Failed to load sound: %@", path);
    return self;
}

- (void) dealloc
{
    AudioServicesDisposeSystemSoundID(handle);
    [super dealloc];
}

- (void) play
{
    AudioServicesPlaySystemSound(handle);
}

@end

Lives здесь . Чтобы узнать о других параметрах звука, см. этот вопрос .

7
ответ дан 6 December 2019 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: