自从iOS3以来,我的应用程序中已经有了这个代码,而且它一直在运行。据我所知,这些库在iOS8中根本没有变化,但它在iOS8中不起作用。它不会崩溃或任何事情,它只是从不播放声音效果。
有什么想法吗?
static void completionCallback (SystemSoundID mySSID, void* myself) {
AudioServicesRemoveSystemSoundCompletion(mySSID);
AudioServicesDisposeSystemSoundID(mySSID);
}
+ (void) playSound: (NSString *)path {
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &soundID);
AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, completionCallback, NULL);
AudioServicesPlaySystemSound(soundID);
}
答案 0 :(得分:9)
我找到了我的问题的答案,它可能会解决你的问题。我进入设置并更改了铃声和警报的音量,这是在声音部分。由于某种原因,我的设定为零。我没有意识到AudioServices连接到这个声级。根据我的需要,我可能会转而使用AVAudioPlayer。
答案 1 :(得分:3)
我知道这个帖子有点旧。但我最近遇到了这个问题,这是我解决这个问题的方法。
转到settings
> sounds
> Ringer and alerts
。增加音量并尝试播放声音。大概可能会有效。
此外,您正在使用的代码也将很快弃用。请使用以下内容。
+(void)playClickSound
{
NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"click_sound.mp3" withExtension:nil]; //filename can include extension e.g. @"bang.wav"
if (fileURL)
{
SystemSoundID theSoundID;
OSStatus error = AudioServicesCreateSystemSoundID((__bridge CFURLRef)fileURL, &theSoundID);
if (error == kAudioServicesNoError)
{
AudioServicesPlaySystemSoundWithCompletion(theSoundID, ^{
AudioServicesDisposeSystemSoundID(theSoundID);
});
}
}
}
答案 2 :(得分:2)
在我的情况下,声音很好......但是ipad正在静音。从底部(控制中心)向上滑动并取消静音
答案 3 :(得分:1)
我有类似的问题。它一度工作正常但后来停止了工作。
我一遍又一遍地检查了代码,然后用Google搜索我的问题,看看能不能找到任何线索。
事实证明,只需将设备关闭再重新打开即可解决问题!
答案 4 :(得分:0)
对我来说,这是翻转的响铃/静音开关(上/下音量按钮上方的开关)。 SpriteKit声音仍然完美无缺,所以这种行为非常烦人。