Ios4 我正在函数中使用AudioServicesPlaySystemSound,是否可以将SystemSoundID变量传递回调用程序

Ios4 我正在函数中使用AudioServicesPlaySystemSound,是否可以将SystemSoundID变量传递回调用程序,ios4,Ios4,我使用的是Xcode 4.2 我创建了一个按顺序播放一系列声音片段的函数,如下所示: //------------------------------- //用于背诵四元游戏消息的函数 //------------------------------- void SayQuad(int pageNumber,NSMutableArray quadSounds[])) { NSString*文件名=[quadSounds objectAtIndex:pageNumber]; NSString*pa

我使用的是Xcode 4.2 我创建了一个按顺序播放一系列声音片段的函数,如下所示:

//------------------------------- //用于背诵四元游戏消息的函数 //------------------------------- void SayQuad(int pageNumber,NSMutableArray quadSounds[])) { NSString*文件名=[quadSounds objectAtIndex:pageNumber]; NSString*path=[[NSBundle mainBundle]pathForResource:类型的文件名:@“wav”]; SystemSoundID sayIt; NSURL*filePath=[NSURL fileURLWithPath:path isDirectory:NO]; AudioServicesCreateSystemSoundID((CFURLRef)文件路径,&sayIt); 音频服务播放系统声音(sayIt);
} 现在基于用户操作,我想在声音剪辑结束之前取消它。这可以通过以下方式实现: AudioServicesDisposeSystemSoundID(sayIt); 但是,变量“sayIt”需要传回调用程序。 我是新手,根本不知道怎么做。 我曾尝试设置指针变量,但甚至无法编译它们


任何帮助都将不胜感激。

首先,请注意正确设置代码格式,以便我们能够轻松阅读。它应该是这样的:

void SayQuad(int pageNumber, NSMutableArray quadSounds[]) {

   NSString *fileName = [quadSounds objectAtIndex:pageNumber]; 
   NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"wav"];
   SystemSoundID sayIt; 
   NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];     
   AudioServicesCreateSystemSoundID((CFURLRef)filePath, &sayIt);
   AudioServicesPlaySystemSound(sayIt);
}
接下来,请仔细阅读苹果提供的内容: 您正在使用SystemSoundServices。要控制播放,您需要使用AVAudioPlayer或其他类似OpenAL的播放器。这些都写在苹果提供的文档中