0

我在以编程方式在 iPhone 上播放声音时遇到问题 - 我不明白 Xcode 文档中关于 AvAudioPlayer 的解释。其他人可以给我一个代码片段,或者更好地向我解释一下吗?

编辑我真正想做的是在无限循环中播放声音,从viewdidload开始,在应用程序退出时音乐应该停止(不在后台播放)。这是我正在尝试开发的游戏

实际上我使用的每种方法都返回相同的错误:(日志摘录)

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'

编辑结束

谢谢

4

2 回答 2

1

这是播放已添加到捆绑包中的短声音的一种非常简单的方法:

NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"somesound" ofType:@"aif"];

SystemSoundID soundID;

AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath: soundPath], &soundID);

AudioServicesPlaySystemSound (soundID);

这是有关系统声音服务参考的更多文档

编辑:由于您不想简单地播放短音,这可能会更好:

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"mySound" ofType:@"mp3"];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
player.numberOfLoops = -1; //infinite

[player play];

有关详细信息,请参阅AVAudioPlayer 类参考

于 2012-11-14T19:54:38.060 回答
0

根据您的错误,您的声音文件路径无效(NSURL 为无效路径返回 nil)。

于 2012-11-14T20:44:07.163 回答