У меня есть приложение, которое почти закончено, но столкнулось с раздражающей проблемой. В приложении я хочу воспроизвести звук, когда я нажимаю на какой-либо объект, затем объект исчезает. Это кусок кода, который я использовал:
В Object.h
#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioServices.h>
@interface Object: UIView {
UIImageView *image;
CGPoint location;
SystemSoundID soundFileID;
}
In Object.m
- (void)initWithSound {
//a bunch of code to define the image and location
NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"Sound" ofType:@"caf"];
CFURLRef soundURL = (CFURLRef)[NSURL fileURLWithPath:soundPath];
AudioServicesCreateSystemSoundID(soundURL, &soundFileID);
return self;
}
Затем в моем mainViewController будет создано несколько объектов после действий пользователя и добавлено на экран в разных местах с разными изображениями. При нажатии на сам объект, он создаст звук и исчезнет.
In Object.m
- (void)tapped {
AudioServicesPlaySystemSound(soundFileID);
image.image = nil;
[self removeFromSuperview];
}
Все работает найди в симуляторе. Но когда я попробовал это в iPhone, объект исчезает при нажатии, как ожидалось, но звук просто не воспроизводится. Пробовал на 3G и 3GS, оба не воспроизводят звук. Я думаю, что это должно работать. Я делаю какие-либо ошибки? Спасибо за любую помощь.
РЕДАКТИРОВАТЬ: Просто подумайте о чем-то, что я не знаю, связано или нет. Я также использую микрофон, чтобы обнаружить звук от пользователя AVAudioRecorder. Не уверен, повлияет ли это на вывод звука.