我正在尝试使用以下代码行在我的iOS应用中播放我的音频文件,即1.9秒:
NSString *path = [[NSBundle mainBundle] pathForResource:@"bell" ofType:@"wav"];
NSURL *pathURL = [NSURL fileURLWithPath : path];
SystemSoundID audioEffect;
AudioServicesCreateSystemSoundID((__bridge CFURLRef) pathURL, &audioEffect);
AudioServicesPlaySystemSound(audioEffect);
AudioServicesDisposeSystemSoundID(audioEffect);
音频文件永远不会播放,但会调用代码。
编辑: file bell.wav
bell.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 48000 Hz
答案 0 :(得分:3)
问题是你在有机会开始播放之前处理声音。
我的书教你如何做到这一点。这是我在书中提供的代码:
void SoundFinished (SystemSoundID snd, void* context) {
// NSLog(@"finished!");
AudioServicesRemoveSystemSoundCompletion(snd);
AudioServicesDisposeSystemSoundID(snd);
}
- (IBAction)doButton:(id)sender {
NSURL* sndurl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"aif"];
SystemSoundID snd;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)sndurl, &snd);
AudioServicesAddSystemSoundCompletion(snd, nil, nil, SoundFinished, nil);
AudioServicesPlaySystemSound(snd);
}
您可以调整它以使用您的声音并以您需要的方式触发播放。
但请注意,您不应将1.9秒的声音用作系统声音。最好使用AVAudioPlayer(我的书也会教你这么做)。