Objective c 使用播放声音的相同按钮停止声音
非常简单,我使用一个按钮生成一个随机数,然后使用一个开关/盒,它可以设置图像动画并播放声音。我的问题是,当你再次按下按钮时,之前播放的声音不会停止,并且声音重叠 代码如下:Objective c 使用播放声音的相同按钮停止声音,objective-c,cocoa-touch,ios,Objective C,Cocoa Touch,Ios,非常简单,我使用一个按钮生成一个随机数,然后使用一个开关/盒,它可以设置图像动画并播放声音。我的问题是,当你再次按下按钮时,之前播放的声音不会停止,并且声音重叠 代码如下: - (IBAction) pushme: (id) sender{ int random = (arc4random()%10); switch (random) { case 0: { [ANIMATION NUMBER 0] NSString *path = [
- (IBAction) pushme: (id) sender{
int random = (arc4random()%10);
switch (random) {
case 0: {
[ANIMATION NUMBER 0]
NSString *path = [NSString stringWithFormat:@"%@%@",[[NSBundle mainBundle] resourcePath],@"/sound0.wav"];
SystemSoundID soundID;
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
AudioServicesPlaySystemSound(soundID);
}
break;
case 1: {
[ANIMATION NUMBER 1]
NSString *path = [NSString stringWithFormat:@"%@%@",[[NSBundle mainBundle] resourcePath],@"/sound1.wav"];
SystemSoundID soundID;
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
AudioServicesPlaySystemSound(soundID);
} break; //Lots more cases after this one
我知道这不是最好的方法,反复声明相同的变量。
但是有没有办法在它播放另一个之前阻止它呢 我刚刚找到了我自己问题的答案 我所做的是
SoundSystemID soundID代码>在标题中李>
在生成随机数之前添加此行:AudioServicesDisposeSystemSoundID(soundID)代码>
请记住,如果要再次播放声音,则需要在处理资源后再次加载该资源
无论如何,谢谢你们。我刚刚找到了我自己问题的答案
我所做的是
声明SoundSystemID soundID代码>在标题中李>
在生成随机数之前添加此行:AudioServicesDisposeSystemSoundID(soundID)代码>
请记住,如果要再次播放声音,则需要在处理资源后再次加载该资源
无论如何,谢谢你们。哈哈,我刚刚找到了我自己问题的答案。太好了!请将答案张贴在这里,以便其他人可以从您的研究中受益。@Nicolas:对不起,我的意思是将其作为“答案”添加到下面。这样,问题就不会在搜索中显示为未回答。谢谢@JoshCaswell我不能回答,因为作为一个新用户,我不能在8小时前回答。@JoshCaswell,你能添加它吗?哈哈,我刚刚找到了我自己问题的答案。太棒了!请将答案张贴在这里,以便其他人可以从您的研究中受益。@Nicolas:对不起,我的意思是将其作为“答案”添加到下面。这样,问题就不会在搜索中显示为未回答。谢谢@JoshCaswell我不能回答,因为作为一个新用户,我不能在8小时前回答。@JoshCaswell,你能添加它吗?