我正在创建一个基于iOS的游戏,需要一些帮助。我想写一些代码,当按下屏幕上的按钮时播放声音。我在整个故事板上放了一个大按钮,用它来实现我的声音文件:
- (IBAction)sound; {
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"hit1", CFSTR ("wav"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
}
如果我启动我的应用程序并点击屏幕,声音会播放但我的整个显示屏都会冻结,我只看到一个冻结的屏幕并播放按钮声音。
有谁知道解决方案?
谢谢。
答案 0 :(得分:0)
您的屏幕没有响应,因为您的屏幕顶部有一个按钮。创建一个IBOutlet并将其连接到您的按钮。然后按下按钮时,隐藏按钮。
一个例子是:
你的.h 中的
IBOutlet UIButton *playBtn;
你的.m中的:
- (IBAction)sound {
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"hit1", CFSTR ("wav"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
// Hide button when user presses the button
playBtn.hidden =YES;
}
确保将Interface Builder中的IBOutlet连接到按钮。
您还可以尝试UIGestureRecognizer来检测屏幕上的点按。