iOS声音播放音量不尊重音量变化或静音

时间:2012-09-25 20:23:06

标签: iphone ios volume

这是我目前的代码

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);

}

它可以工作,但它不允许您更改设备上的音量或使用静音开关将其静音。启用这些功能的最简单方法是什么?感谢。

1 个答案:

答案 0 :(得分: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应该尊重用户的音量设置。