gpt4 book ai didi

iphone - 在 iPhone 上使用 kAudioSessionProperty_OtherMixableAudioShouldDuck

转载 作者:行者123 更新时间:2023-12-03 19:12:52 25 4
gpt4 key购买 nike

我试图从 iPhone 上的 kAudioSessionProperty_OtherMixableAudioShouldDuck 属性中获得一致的行为,以允许 iPod 音乐混合,但我遇到了麻烦。在我的应用程序开始时,我设置了一个环境类别,如下所示:

-(void) initialize
{
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];
}

稍后,当我尝试播放音频时,我使用以下方法设置鸭子属性:

//this will crossfade the audio with the ipod music
- (void) toggleCrossfadeOn:(UInt32)onOff
{
//crossfade the ipod music
AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(onOff),&onOff);
AudioSessionSetActive(onOff);
}

我将其称为在播放音频之前传递数字“1”,如下所示:

  [self toggleCrossfadeOn:1];
[player play];

然后,当我的应用程序的音频使用播放停止回调完成时,我再次调用交叉淡入淡出方法并传递零,如下所示:

-(void) playbackIsStoppingForPlayer:(MQAudioPlayer*)audioPlayer
{
NSLog(@"Releasing player");
[audioPlayer release];
[self toggleCrossfadeOn:0];
}

在我的生产应用程序中,这段代码按预期工作,导致 iPod 在播放我的应用程序的音频之前淡出,然后在音频播放完毕时淡出。在我最近开始的一个新项目中,我得到了不同的行为。 iPod 音频逐渐减弱,并且永远不会淡入。在我的制作应用程序中,我使用 AVAudioPlayer,在我的新应用程序中,我编写了一个使用音频队列的自定义音频播放器。有人可以帮助我理解这些差异以及如何正确使用这个 API 吗?

最佳答案

我刚刚发现了部分问题。这似乎与时间有关。我相信当我调用将音频混合回来时,我的自定义播放器仍在为音频系统提供信号。如果我在playbackIsStoppingForPlayer方法中设置断点,那么它似乎会按预期工作,因为断点停止执行的时间足够长,足以满足剩余的时间音频完成音频队列的传输。

关于iphone - 在 iPhone 上使用 kAudioSessionProperty_OtherMixableAudioShouldDuck,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2579152/

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