gpt4 book ai didi

objective-c - CFURLRef 需要桥接转换错误

转载 作者:可可西里 更新时间:2023-11-01 04:23:55 26 4
gpt4 key购买 nike

我正在尝试播放声音,但是当我编码时:

AudioServicesCreateSystemSoundID ((CFURLRef) alertSound, &soundFileObject);

它抛出以下错误:

将 Objective-C 指针类型“NSURL *”转换为 C 指针类型“CFURLRef”(又名“const struct __CFURL *”)需要桥接转换错误

我已经尝试了以下两个建议的解决方案:

AudioServicesCreateSystemSoundID ((__bridge CFURLRef) alertSound, &soundFileObject);

AudioServicesCreateSystemSoundID ((CFURLRef) CFBridgingRetain(alertSound), &soundFileObject);

但我仍然无法播放声音。

我想问题是:桥接错误是导致声音无法播放的原因,还是我应该看看其他地方?

我可以使用 SysSound 示例代码播放声音,我使用的是 iOS 6 和 Xcode 4.5。

感谢任何指点:)

最佳答案

Actor 可能不是声音不播放的原因:

AudioServicesCreateSystemSoundID ((__bridge CFURLRef) alertSound, &soundFileObject);

很好。

很可能您的错误是在您没有向我们展示的代码中。一个常见问题是 URL 创建错误或文件格式无效。

修改你的代码如下:

OSStatus status = AudioServicesCreateSystemSoundID((__bridge CFURLRef)alertSound, &soundFileObject);
NSLog(@"AudioServicesCreateSystemSoundID status = %ld", status);

并检查你得到的状态码; parmErr (-50) 比较常见,通常表示您的 URL 为 nil。

哦,还有一个想法,您没有显示实际播放声音的位置。您确实知道 AudioServicesCreateSystemSoundID 实际上并不播放声音。您需要调用:

AudioServicesPlaySystemSound(soundFileObject);

抱歉,如果您已经知道了!

关于objective-c - CFURLRef 需要桥接转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11703923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com