У кого-либо есть отрывок, который использует платформу AudioToolBox, которая может использоваться для проигрывания короткого звука? Я был бы благодарен, если бы Вы совместно использовали его со мной и остальной частью сообщества. Везде еще я посмотрел, кажется, не слишком ясен с их кодом.
Спасибо!
Вот простой пример использования 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» доступен в основном пакете. Поскольку я много играю этот звук, я фактически держу его при себе, чтобы воспроизвести его позже, вместо того, чтобы выпускать его.
Я написал простую оболочку 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 здесь . Чтобы узнать о других параметрах звука, см. этот вопрос .