1

我正在开发小游戏,但背景音乐有问题。我AVAudioPlayer用来播放循环音乐。如下所示:

NSString *path = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"ogg"];
NSError *error;

AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] error:&error];

NSLog(@"%@", [error description]);

[player setNumberOfLoops:-1];
player.delegate = self;
[player play];

我在Supproting Files文件background.oggbackground.mp3background.wav没有人玩。它有什么问题?

当我NSLog用来打印描述错误时,我得到了:

Error Domain=NSOSStatusErrorDomain Code=1954115647 "The operation couldn’t be completed. (OSStatus error 1954115647.)"

请帮忙。

4

2 回答 2

0

有时,只是因为您的音频文件的质量不符合它需要的采样率,例如采样率。请检查您的音频采样率是否低于 24kHz。我测试了一些音频,我发现当音频采样率高于 44kHz 时,它工作得很好,但是如果它低于 44kHz 和高于 22kHz,AudioToolbox 不能先播放声音,而 AVAudioPlayer 可以工作一些次。如果它低于 22kHz,它们都将无法播放这些音频文件。(我测试的这些音频文件格式只是“m4a”、“mp3”、“wav”)

顺便说一句,如果你想将低采样率的音频转换为 44kHz "m4a" 文件使用 iTunes,它也无法工作。不要在这上面浪费你的时间。

于 2015-12-29T05:30:15.107 回答
-2

那太容易了。还有一件事。当您使用例如时NSTimer,您必须ivalidate在某个地方使用它。当你使用时,AVAudioPlayer你必须stop在某个地方使用它。

[player stop];
于 2012-12-29T15:13:14.453 回答