Xcode5每次触摸屏幕时如何添加声音效果?

时间:2014-04-04 04:05:34

标签: ios iphone flappy-bird-clone

我制作了一个应用程序来愚弄,这基本上是一个脆弱的鸟类克隆。当我触摸屏幕时,我需要知道如何发出声音。我尝试使用按钮,但声音只会作为触摸按钮播放,而不是整个屏幕。当我触摸按钮时,那只鸟刚落下。我知道我可能不得不使用TouchBegan,但我使用的代码是什么,我把它放在哪里?越多细节越好,因为我是这个东西的巨大新秀。谢谢!

2 个答案:

答案 0 :(得分:1)

如果您使用的是UIView子类,则可以实现以下方法来确定是否发生了点击。从那里,只播放你的声音。 (注意,使用ARC)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // now that we know that a touch has occurred, lets play a sound
    NSString *pathToMySound = [[NSBundle mainBundle] pathForResource:@"mySound" ofType:@"aif"];
    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID([NSURL fileURLWithPath: pathToMySound], &soundID);
    AudioServicesPlaySystemSound(soundID);
}

答案 1 :(得分:0)

尝试将UITapGestureRecogniser添加到主视图中,该视图可能是self.view,或者您命名的任何内容。

确保已启用用户互动,并创建一个选择器,每次调用时都会播放声音。

this article可能对您有所帮助,我还没有尝试过,但看起来它朝着正确的方向发展。 我会以编程方式添加UIGesture。

- 这就是你如何创建UITapGesture

//this stuff goes  in your viewDidLoad for example
UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSthCool:)];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
[self addGestureRecognizer: singleTap]; //self or wherever you want to add it

.....
.....

- (void) doSthCool: (UITapGestureRecognizer *)recognizer{
     //Code to handle the gesture
     NSLog(@"flap");
}

此外,如果您不知道自己在做什么,尝试使用网址时请不要使用CFURLRef,而是尝试以下内容:

NSURL *path = [NSURL URLWithString:@"whatever the url/path is."];

我确实建议你在遇到问题时谷歌一些东西,这是最好的学习方法:)

祝你好运伴侣! 并有乐趣编码:)