0

我正在寻找一种didReceiveMemoryWarning在终止音频播放器之前利用淡出我的应用程序中播放的音乐的方法。我想在不影响系统音量的情况下淡出音乐并从内存中删除播放器(或者至少在完成后重置系统音量。)我只需要支持 iOS 5+。

我在这里问这个问题的原因是:

  1. 我无法访问实际播放音乐的代码,它位于第 3 方框架中(所以我认为我唯一的解决方案是调整系统音量。)
  2. 到目前为止,我发现的所有解决方案都相当陈旧、老套,和/或带有关于不被 App Store 接受的警告等。

有没有一种可以接受的方式来淡化 iPhone 的音频?

4

2 回答 2

1

如果您最终找到了至少访问播放器的方法,这里有几种方法可以做到这一点。

在一个运行while-loop

-(void)fadeOut
{
    while (data.volume > 0) {
        data.volume = data.volume - 0.1;
    }
    [data stop];
    data = nil;
}

或者,使用计时器:

- (void)fadeOutWithTimer
{
    if (data.volume > 0.1) {
        data.volume = data.volume - 0.1;
        [self performSelector:@selector(fadeOutWithTimer) withObject:nil afterDelay:0.05];
    } else {
        [data stop];
        data = nil;
    }
}
于 2012-08-06T18:16:42.277 回答
0

在允许的 API 范围内,只有用户可以控制系统音量。您的应用无法对其进行调整。正如您所提到的,在应用商店中将不允许访问这些其他 API,并且可能需要越狱设备。

您使用的是哪个 3rd 方框架?您能否检查一下它是否在其中使用标准音频播放器,例如AVAudioPlayer?如果是这样,您可以通过这种方式对其进行修改。

更新:正如 Randy 在下面指出的那样,您实际上可以通过控制 iPod 的音量来做到这一点:

[[MPMusicPlayerController iPodMusicPlayer] setVolume:0.05];
于 2012-08-06T17:41:43.140 回答