为什么在我的应用程序导致它淡出后,iPod的音频不会淡入?

时间:2008-12-22 12:11:47

标签: iphone cocoa-touch

我的应用程序需要播放一些音频文件,我想淡出iPod声音,播放我的文件,然后一旦我的音频再次停止播放淡入的iPod(就像iPhone在传入时处理iPod音乐一样)电话进来了)

我将我的应用程序的音频会话设置为kAudioSessionCategory_MediaPlayback,然后在我播放文件之前,我调用了AudioSessionSetActive(true) 然后当我的文件结束播放时,我调用AudioSessionSetActive(false)

通过AudioSessionSetActive(true)调用,iPod音频会淡出,但在调用AudioSessionSetActive(false)之后,它永远不会再次淡入

我正在使用AVFoundation类来播放我的音频,我在我的委托方法中使用audioPlayerDidFinishPlaying,这就是我调用AudioSessionSetActive(false)的地方。

我在这里缺少什么?当我取消音频会话时,为什么iPod没有淡入?我的音频会话类别是否错误?

2 个答案:

答案 0 :(得分:4)

好的,这很可爱。 在iPhone OS3中,请参阅AddMusic示例。

实质上,你这样做:

#import <MediaPlayer/MediaPlayer.h>
...
[[MPMusicPlayerController iPodMusicPlayer] pause]
...(play your audio, with AmbientSound category)
[[MPMusicPlayerController iPodMusicPlayer] play]

这是基本的。您还可以通过循环音量更改等添加淡出。

答案 1 :(得分:2)

我从Apple那里得到了答案。不幸的是,SDK 2.2无法实现。我提交了一个功能请求,所以谁知道将来可能会添加此功能。