我不懂AudioToolbox Framework ... 我有这行代码:
-(IBAction)PlaySound1:(id)sender{
AudioServicesPlaySystemSound(PlaySoundID1);
}
但是xcode给了我这个错误:
指向整数转换的指针不兼容将'SystemSoundID传递给'SystemSoundID'类型的参数
Xcode建议我这样做:
-(IBAction)PlaySound1:(id)sender{
AudioServicesPlaySystemSound(*(PlaySoundID1));
}
但如果我这样做,声音就不会播放!另外我见过许多youtube教程,人们甚至没有收到错误...有没有办法在xcode中禁用某个警告或有办法解决这个问题?
编辑:我在代码的这一行也得到了同样的错误:
AudioServicesCreateSystemSoundID((__bridge CFURLRef)SoundURL1, &PlaySoundID1);
Xcode建议我摘下“&”在我的系统声音id面前,但如果我这样做,声音将无法播放!声音播放的唯一时间是如果我与xcode相矛盾(我通常不介意,但因为我有100多个声音,错误的数量是荒谬的!)
答案 0 :(得分:1)
根据错误,您最有可能错误地定义PlaySoundID1
。
你可能有类似的东西:
SystemSoundID *PlaySoundID1;
但你需要的是:
SystemSoundID PlaySoundID1; // no asterisk
您对AudioServicesCreateSystemSoundID
的致电应该是这样的:
SystemSoundID usedSoundID;
OSStatus status = AudioServicesCreateSystemSoundID((__bridge CFURLRef)SoundURL1, &usedSoundID);
// check the status and look at usedSoundID as needed
第二个参数是" out"价值因此您不应该传递PlaySoundID
值。