在我的应用程序中减少/减少背景ipod声音

时间:2014-02-24 17:08:16

标签: ios audio

我需要在iOS中制作一个应用程序,在她的演绎期间发出不同的声音,如“嘟嘟”声。

我已经使用MPMusicPlayerController实现了与后台ipod的交互。

问题:

由于来自ipod的音乐音量,我听不到“嘟嘟”声。 我需要减少ipod的音量,但不要减少我的应用程序的音量。 tomtom应用程序使扬声器提供有关方向的信息。但我不知道如何。

我试过这段代码:

- (void)playSoundCountDown{

NSError *errorObject = nil;
[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryAmbient     error:&errorObject];
if (errorObject) {
    NSLog(@"Error setting category! %@",errorObject);
}

NSString *path = [[NSBundle mainBundle] pathForResource:@"countDownFiveToOne" ofType:@"caf"];
theSound = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
theSound.delegate = self;// (AVAudioPlayer *theSound;)
[theSound setVolume:0.4f];
[theSound play];

float volumeDecrease = 0.2f;
MPMusicPlayerController* iPodMusicPlayer = [MPMusicPlayerController iPodMusicPlayer];
[iPodMusicPlayer setVolume:volumeDecrease];

}

但是“setVolume”减少了设备所有声音的音量,包括我应用的声音......

我需要你的帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

尝试启用闪避:

,而不是降低音量
- (void)playSoundCountDown{

    NSError *errorObject = nil;
    [[AVAudioSession sharedInstance] 
        setCategory: AVAudioSessionCategoryAmbient
        withOptions: AVAudioSessionCategoryOptionDuckOthers
              error: nil];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"countDownFiveToOne" ofType:@"caf"];
    theSound = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
    theSound.delegate = self;
    [theSound setVolume:0.4f];
    [theSound play];
}