0

アプリのバックグラウンドでオーディオファイルを再生しようとしていますが、再生されません。私が持っているコードは次のとおりです。

SystemSoundID SoundID;
NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"HoHey" ofType:@"mp3"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:soundFile], &SoundID);
AudioServicesPlaySystemSound(SoundID);
NSLog(@"%@ is playing\n", soundFile);

NSLogには「HoHey.mp3が再生中です」と表示されますが、再生音が聞こえません。ビデオを再生するとビデオが再生されるのが聞こえるので、音量が上がります。何か案は?

4

1 に答える 1

0

途中でどこかでエラーが発生する可能性があります。次のようなコードを試してください。

SystemSoundID soundID;
NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"HoHey" ofType:@"mp3"];
if(soundFile)
{
    OSStatus status = AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:soundFile], &soundID);
    if(status == noErr)
    {
        AudioServicesPlaySystemSound(soundID);
        NSLog(@"%@ is playing\n", soundFile);
    } else {
        NSLog( @"no sound id created; error status code is %d", status);
    }
} else {
    NSLog( @"couldn't find sound file... is it really in your app bundle?");
}

PS、Objective-C の変数名を大文字にしないでください (例: " soundID" の代わりに " SoundID")。

于 2013-03-06T00:01:59.040 に答える