首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每次触摸屏幕时都会在可可中播放声音

每次触摸屏幕时都会在可可中播放声音
EN

Stack Overflow用户
提问于 2014-10-09 19:50:06
回答 1查看 111关注 0票数 0

每次我点击游戏中的屏幕时我都在试着播放声音.

基本上,每次我的角色跳跃,我都不会有一点声音。不幸的是,它似乎只在循环(来自上一次跳转)已经完成前一次会话的播放时才播放.意思是我每次触摸屏幕都不会受到声音的影响.

利用这一框架:

代码语言:javascript
运行
复制
 #import <AVFoundation/AVFoundation.h>

我就是这样加载我的文件的:

代码语言:javascript
运行
复制
 -(void)LoadMusic{
     NSString *jumpSound = [[NSBundle mainBundle] pathForResource:@"Burst" ofType:@"mp3"];
     jumpAffect = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:jumpSound] error:NULL];
     jumpAffect.delegate = self;
 }

在viewDidLoad中调用它:

代码语言:javascript
运行
复制
 - (void)viewDidLoad{
     [self LoadMusic];
     ...
     [super viewDidLoad];
 }

这就是我想让它播放的时候(每次我触摸屏幕(让角色跳转):

代码语言:javascript
运行
复制
 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event{
     [jumpAffect play];
     jump = 16;
 }

有什么东西我忘了让循环在对方身上播放吗?或者我可以停止循环,并重新启动它,如果它还在播放时,发生下一个触摸?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-09 19:56:13

试着做这样的事情:

代码语言:javascript
运行
复制
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  [self playJumpSound];
}

- (void)playJumpSound {
  AVAudioPlayer *jumpEffect = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:jumpSound] error:NULL];
  [jumpEffect play];
}

如果您发现加载您的声音太慢,加载在前面的一小撮,然后再使用播放器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26286822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档