5
我试图让要播放的声音,但是当我代码:CFURLRef需要一个桥接铸错误
AudioServicesCreateSystemSoundID ((CFURLRef) alertSound, &soundFileObject);
它引发以下错误:Objective-C的指针类型的
演员“ NSURL *”到C指针类型‘CFURLRef’(又名‘常量结构__CFURL *’)需要一个桥接铸错误
我曾经尝试都两个以下建议的解决方案:
AudioServicesCreateSystemSoundID ((__bridge CFURLRef) alertSound, &soundFileObject);
或
AudioServicesCreateSystemSoundID ((CFURLRef) CFBridgingRetain(alertSound), &soundFileObject);
但我仍然不能得到声音播放。
我想问题是:桥接错误是声音没有播放的原因,还是我应该看看其他地方?
我可以使用SysSound示例代码播放声音,我使用的是iOS 6和Xcode 4.5。
感谢您的指点:)
是的,-50。 我的NSURL如下所示: NSURL * alertSound = [[NSBundle mainBundle] URLForResource:@“tap”withExtension:@“aif”]; 而文件“tap.aif”位于我创建的名为Sounds的组中。 是否有某处需要放置? 非常感谢您的帮助! – robspencer77 2012-07-28 20:06:44
只是为了确保在调试器或者使用NSLog检查URL是否为零。这意味着(正如我认为你开始怀疑)Xcode不会将你的声音复制到你的应用程序的包中。您可以尝试从您的项目中删除它(仅参考!!!!),然后重新添加它,并再次检查文件名的拼写是否正确(可能是.aiff?)。我不认为你需要把它放在任何特别的地方。我通常会将这些东西放在Xcode创建的“支持文件”组中,但我不认为这是必需的。 – idz 2012-07-28 20:21:16
啊,明白了!谢谢! :) 不知道为什么没有正确添加在首位。 干杯,idz! – robspencer77 2012-07-28 20:27:37