1

Cocos2d 2.0 を使用して開発しているゲームのシーンの BGM を再生しようとしています。

しかし、実行は停止します

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 に答える