我需要在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”减少了设备所有声音的音量,包括我应用的声音......
我需要你的帮助。
感谢。
答案 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];
}