1

我正在尝试为我正在使用 Cocos2d 2.0 开发的游戏场景播放背景音乐

但执行停止在

在 CDAudioManager.m 中:

-(void) load:(NSString*) filePath {
    ........
    .........
    [[audioSourcePlayer prepareToPlay]; //This is where the execution stops!!

它没有提供有关异常的详细信息!,它只是打破了!

这就是我演奏音乐的方式:

NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"background_music" ofType:@"mp3"];
NSLog(@"soundFile: %@", soundFile); //The path is correct
SimpleAudioEngine *sae = [SimpleAudioEngine sharedEngine];
if (sae != nil) {
    [sae preloadBackgroundMusic:soundFile];
    if (sae.willPlayBackgroundMusic) {
        sae.backgroundMusicVolume = 0.5f;
    }
}

我正在使用 Cocos2d 2.0、Xcode 4.5.1、iOS SDK 6.0

4

1 回答 1

0

检查文件是否通过存在测试:

NSLog(@"soundFile: %@, exists: %u", 
      soundFile, [[NSFileManager defaultManager] fileExistsAtPath:soundFile]);

如果文件存在,exists 将为 1。

如果确实存在,请进入 preloadBackgroundMusic 并查看是否有任何返回 nil 的内容。我可以想象 mp3 使用 CD 不支持的格式。如果是这样,请使用 Audacity 或类似的音频工具打开并重新保存 mp3 文件。

您还应该在 Xcode 中添加添加全局异常断点。这样,Xcode 不仅会在发生异常时停止,还会跳到有问题的行。

于 2012-11-01T11:54:25.307 回答