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