3

これは私の現在のコードです

void playSound(NSString* myString) {

    CFBundleRef mainBundle = CFBundleGetMainBundle();
    NSString *string = myString;
    CFURLRef soundFileURLRef;
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, 
                        (__bridge CFStringRef) string, CFSTR ("wav"), NULL);
    UInt32 soundID;
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
    AudioServicesPlaySystemSound(soundID);

}

動作しますが、デバイスの音量を変更したり、ミュート スイッチでミュートしたりすることはできません。これらの機能を有効にする最も簡単な方法は何ですか? ありがとう。

4

1 に答える 1

0

AVFoundationを使ってみませんか?単純な効果音を再生するだけの場合は、高レベルのAPIであるため、はるかに優れた選択肢になります。

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"mp3"];
NSURL *url = [NSURL fileURLWithPath:filePath];

// Assuming audioPlayer is an ivar.
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;

if (audioPlayer == nil)
    NSLog([error description]);             
else 
    [audioPlayer play];

AVAudioPlayerユーザーの音量設定を尊重する必要があります。

于 2012-09-25T20:29:45.680 に答える