rob*_*r77 5 audio url objective-c ios
我想要播放声音,但是当我编码时:
AudioServicesCreateSystemSoundID ((CFURLRef) alertSound, &soundFileObject);
Run Code Online (Sandbox Code Playgroud)
它会引发以下错误:
将Objective-C指针类型'NSURL*'转换为C指针类型'CFURLRef'(又名'const struct __CFURL*')需要桥接转换错误
我尝试了以下两个建议的解决方案:
AudioServicesCreateSystemSoundID ((__bridge CFURLRef) alertSound, &soundFileObject);
Run Code Online (Sandbox Code Playgroud)
要么
AudioServicesCreateSystemSoundID ((CFURLRef) CFBridgingRetain(alertSound), &soundFileObject);
Run Code Online (Sandbox Code Playgroud)
但我仍然无法发挥声音.
我想问题是:声音不起作用的桥接错误,还是我应该在哪里寻找其他地方?
我可以使用SysSound示例代码播放声音,我使用的是iOS 6和Xcode 4.5.
感谢任何指针:)
演员可能不是声音不播放的原因:
AudioServicesCreateSystemSoundID ((__bridge CFURLRef) alertSound, &soundFileObject);
Run Code Online (Sandbox Code Playgroud)
很好.
很可能您的错误出现在您未向我们展示过的代码中.常见问题是URL创建错误或文件格式无效.
修改您的代码如下:
OSStatus status = AudioServicesCreateSystemSoundID((__bridge CFURLRef)alertSound, &soundFileObject);
NSLog(@"AudioServicesCreateSystemSoundID status = %ld", status);
Run Code Online (Sandbox Code Playgroud)
并检查您获得的状态代码; parmErr
(-50)相对常见,通常表示您的网址为零.
哦,还有一个想法,你没有显示你实际播放声音的位置.你知道AudioServicesCreateSystemSoundID
实际上并没有播放声音.你需要打电话:
AudioServicesPlaySystemSound(soundFileObject);
Run Code Online (Sandbox Code Playgroud)
如果你已经知道的话,道歉!