Как мне сделать массив SystemSoundID - PullRequest
3 голосов
/ 10 июля 2010

Я не могу понять это.

Я могу играть один звук с:

- (void) initSounds {
    // Get the main bundle for the app
    CFBundleRef mainBundle;
    mainBundle = CFBundleGetMainBundle ();
    // Get the URL to the sound file to play
    soundFileURLRef  =  CFBundleCopyResourceURL (mainBundle,CFSTR ("1"),CFSTR ("wav"),NULL);

    // Create a system sound object representing the sound file
    AudioServicesCreateSystemSoundID (soundFileURLRef, &soundFileObject);
}

-(void) play {
    AudioServicesPlaySystemSound(self.soundFileObject);
}

Но я хочу создать массив объектов SystemSoundID. Когда я пытаюсь сделать это, я продолжаю получать ошибки. Может кто-нибудь показать мне код для создания массива SoundFileObjects и как я использую этот массив в AudioServicesPlaySystemSound?

1 Ответ

7 голосов
/ 10 июля 2010

SystemSoundID является целочисленным типом, не относящимся к классу, поэтому вам нужно использовать оболочку, например NSNumber, чтобы хранить ее в контейнерах с какао, например NSArray:

// assuming this property:
@property (copy) NSArray *soundFileObjects;

// creating the array:
soundFileObjects = [[NSArray alloc] initWithObjects:
                     [NSNumber numberWithUnsignedLong:soundId],
                     // more ?
                     nil];

// using it, e.g.:
SystemSoundID sid = [[self.soundFileObjects objectAtIndex:0] unsignedLongValue];
AudioServicesPlaySystemSound(sid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...