gpt4 book ai didi

ios - UILocalNotification 中的声音在最大音量时比 AVAudioPlayer 响亮

转载 作者:行者123 更新时间:2023-11-29 13:20:13 25 4
gpt4 key购买 nike

为了这个问题的目的,假设我的应用程序每 10 秒播放一个音频剪辑。此音频使用 AVAudioPlayer 与设备上的 iPod 音乐播放器播放/混合(使用回避)。当应用程序被发送到后台时,我安排 UILocalNotification 对象引用音频文件(没有文本),因此声音会以 10 秒的间隔继续播放。

令我困扰的是,在 iOS 6 上作为通知的一部分播放的音频片段的音量似乎是我在我的应用程序中播放时音量的两倍(我将音量设置为 1.0f ,文档说是最大值)。因此,应用程序每 10 秒播放一次声音,当您发送到后台时,与应用程序中的声音相比,它现在非常响亮。

相关片段...应用程序启动,这是我设置 AVAudioSession 以启用回避的方式:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];

UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);

OSStatus propertySetError = 0;
UInt32 allowMixing = true;
propertySetError = AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers,sizeof (allowMixing),&allowMixing);

...我如何创建我的播放器:

- (AVAudioPlayer *)playerWithCAFFileNamed:(NSString *)fname {
NSURL *u = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:fname ofType:@"caf"]];
NSData *d = [NSData dataWithContentsOfURL:u];
AVAudioPlayer *p = [[AVAudioPlayer alloc] initWithData:d error:nil];
p.delegate = self;
p.volume = 1.0;
[p prepareToPlay];
return p;
}

...然后是回放:

- (void)playAudio:(AVAudioPlayer *)player {
[self setSessionActiveWithMixing:YES];
[player setVolume:1.0]; // should already be set, but just to be sure
[player play];
}

...下面是我创建超大声通知的方式:

- (UILocalNotification *)notificationWithSoundNamed:(NSString *)sound atTimeInterval:(NSTimeInterval)ti {
UILocalNotification *n = [[UILocalNotification alloc] init];
n.soundName = sound;
n.fireDate = [NSDate dateWithTimeIntervalSinceReferenceDate:ti];
return n;
}

最佳答案

我在 Apple 上打开的错误被关闭为“按设计运行”。他们的简要解释:

Notification sounds follow ringer volume; AVAudioPlayer follows media volume.

...我想您可以假设铃声音量可以大于最大媒体音量,以确保您听到铃声。我猜。

关于ios - UILocalNotification 中的声音在最大音量时比 AVAudioPlayer 响亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14549067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com