Ios4 我正在函数中使用AudioServicesPlaySystemSound,是否可以将SystemSoundID变量传递回调用程序
我使用的是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);Ios4 我正在函数中使用AudioServicesPlaySystemSound,是否可以将SystemSoundID变量传递回调用程序,ios4,Ios4,我使用的是Xcode 4.2 我创建了一个按顺序播放一系列声音片段的函数,如下所示: //------------------------------- //用于背诵四元游戏消息的函数 //------------------------------- void SayQuad(int pageNumber,NSMutableArray quadSounds[])) { NSString*文件名=[quadSounds objectAtIndex:pageNumber]; NSString*pa
} 现在基于用户操作,我想在声音剪辑结束之前取消它。这可以通过以下方式实现: 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的播放器。这些都写在苹果提供的文档中