Я ищу, чтобы выполнить некоторый код после того, как звук закончил игру, но не знаю, как лучше всего это сделать. Я посмотрел на performSelectorOnMainThread....
, но не совсем понял это - даже тогда я не уверен, что это лучший способ подойти к проблеме. Я хочу изменить цвет текста метки после того, как мой звук закончил игру. Я был бы рад помочь. Мой код ниже:Лучший способ выполнить код ПОСЛЕ того, как звук закончил играть
-(void) playWordSound:(UILabel *)label
{
NSString *path;
SystemSoundID soundId;
switch (label.tag)
{
case 1:
path = [[NSBundle mainBundle] pathForResource:@"humpty" ofType:@"wav"];
break;
case 2:
path = [[NSBundle mainBundle] pathForResource:@"dumpty" ofType:@"wav"];
break;
case 3:
path = [[NSBundle mainBundle] pathForResource:@"saty" ofType:@"wav"];
break;
case 4:
path = [[NSBundle mainBundle] pathForResource:@"on 2" ofType:@"wav"];
break;
case 5:
path = [[NSBundle mainBundle] pathForResource:@"a 3" ofType:@"wav"];
break;
case 6:
path = [[NSBundle mainBundle] pathForResource:@"wall" ofType:@"wav"];
break;
}
NSURL *url = [NSURL fileURLWithPath:path];
AudioServicesCreateSystemSoundID((CFURLRef)objc_unretainedPointer(url), &soundId);
AudioServicesPlaySystemSound(soundId);
//this is where i want to change the color of the label
}
Спасибо за ваш ответ. У меня есть '#import #import ' в моем .h файле, но я получаю некоторые ошибки - 'itemStatusContext' и' player' оба бросают необъявленные ошибки идентификатора –
garethdn
Вам нужно только AVFoundation, но вы должны объявить все свои переменные, код выше всего лишь фрагмент, вам все равно нужно объявить «AVQueuePlayer * player» и «static const NSString * ItemStatusContext». Ознакомьтесь с руководством системы воспроизведения в документах Xcode. – codeghost