簡體   English   中英

iOS在應用程序內存不足警告時淡出音頻

[英]iOS fade audio on app low memory warning

我正在尋找一種方法,在殺死音頻播放器之前,使用didReceiveMemoryWarning淡出應用程序中播放的音樂。 我想淡化音樂並從內存中刪除播放器,而又不影響系統的音量(或至少在完成后重置系統音量。)我只需要支持iOS 5+。

我在這里問這個問題的原因是:

  1. 我沒有訪問實際播放音樂的代碼,它處於3rd party框架中(因此,我認為我唯一的解決方案是退回調整系統音量。)
  2. 到目前為止,我發現的所有解決方案都已經過時,有些破舊,並且/或帶有一些有關不被App Store接受的警告,等等。

有沒有一種可以使iPhone的音頻褪色的方法?

如果您確實找到了至少可以訪問播放器的方法,可以通過以下兩種方法來完成。

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;
    }
}

在允許的API范圍內,只有用戶可以控制系統容量。 您的應用無法調整它。 如您所述,在應用商店中將不允許訪問這些其他API,並且可能需要越獄設備。

您正在使用哪個第三方框架? 您是否可以查看其內部是否使用了標准音頻播放器,例如AVAudioPlayer 如果是這樣,您可以用這種方式進行修改。

更新:正如Randy指出的那樣,您實際上可以通過控制iPod的音量來做到這一點:

[[MPMusicPlayerController iPodMusicPlayer] setVolume:0.05];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM