为啥 iPod 的音频在我的应用程序导致它淡出后没有淡入?

Posted

技术标签:

【中文标题】为啥 iPod 的音频在我的应用程序导致它淡出后没有淡入?【英文标题】:Why does iPod's audio not fade back in after my app caused it to fade out?为什么 iPod 的音频在我的应用程序导致它淡出后没有淡入? 【发布时间】:2008-12-22 12:11:47 【问题描述】:

我的应用程序需要播放一些音频文件,我想淡出 iPod 声音,播放我的文件,然后当我的音频停止播放淡入式 iPod 时(就像 iPhone 处理 iPod 音乐时传入来电)

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

发生的情况是 iPod 音频在调用 AudioSessionSetActive (true) 时淡出,但在我调用 AudioSessionSetActive (false) 后它再也不会淡入

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

我在这里缺少什么?为什么当我停用音频会话时 iPod 没有淡入?我是否为此设置了错误的音频会话类别?

【问题讨论】:

【参考方案1】:

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

本质上,你这样做:

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于为啥 iPod 的音频在我的应用程序导致它淡出后没有淡入?的主要内容,如果未能解决你的问题,请参考以下文章

在设备锁定时播放 iPod 库中的音频

同时录制音频和播放 iPod?

iOS 如何从歌曲(ipod 库)中获取音频样本?

当 iPod 音乐停止时获取通知

iOS 如何在 Sprite Kit 游戏中创建音频淡入/淡出效果?

音频中的淡入淡出效果通过在ios中使用AVAssetExportSession