我的应用程序需要播放一些音频文件,我想淡出iPod声音,播放我的文件,然后一旦我的音频再次停止播放淡入的iPod(就像iPhone在传入时处理iPod音乐一样)电话进来了)
我将我的应用程序的音频会话设置为kAudioSessionCategory_MediaPlayback,然后在我播放文件之前,我调用了AudioSessionSetActive(true) 然后当我的文件结束播放时,我调用AudioSessionSetActive(false)
通过AudioSessionSetActive(true)调用,iPod音频会淡出,但在调用AudioSessionSetActive(false)之后,它永远不会再次淡入
我正在使用AVFoundation类来播放我的音频,我在我的委托方法中使用audioPlayerDidFinishPlaying,这就是我调用AudioSessionSetActive(false)的地方。
我在这里缺少什么?当我取消音频会话时,为什么iPod没有淡入?我的音频会话类别是否错误?
答案 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无法实现。我提交了一个功能请求,所以谁知道将来可能会添加此功能。