每次点击游戏中的屏幕时,我都会尝试播放声音......
基本上,每次我的角色跳跃,我都不会发出一点声音。不幸的是,如果循环(来自前一个跳转)已经从前一个会话播放完毕,它似乎只播放循环...意思是每次触摸屏幕时我实际上并没有得到声音影响......
使用此框架:
#import <AVFoundation/AVFoundation.h>
这是我加载文件的方式:
-(void)LoadMusic{
NSString *jumpSound = [[NSBundle mainBundle] pathForResource:@"Burst" ofType:@"mp3"];
jumpAffect = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:jumpSound] error:NULL];
jumpAffect.delegate = self;
}
在viewDidLoad中调用它:
- (void)viewDidLoad{
[self LoadMusic];
...
[super viewDidLoad];
}
这就是我希望它播放的时候(每当我触摸屏幕时(让角色跳跃):
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event{
[jumpAffect play];
jump = 16;
}
有什么东西我忘了让循环互相播放吗?或者我可以停止循环并重新启动它,如果它仍然在下一次触摸时播放?
答案 0 :(得分:1)
尝试这样的事情:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self playJumpSound];
}
- (void)playJumpSound {
AVAudioPlayer *jumpEffect = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:jumpSound] error:NULL];
[jumpEffect play];
}
如果您发现加载声音太慢,请先加载少量声音,然后重复使用播放器。