我正在用AVPlayer
播放音乐。现在在某个时间NSTimer
发射并且我想要褪色到另一个轨道。所以我开始淡出我的AVPlayer并创建一个新的AVPlayer实例来播放下一首歌。
在前景时,它按预期工作。但是当我的应用程序在后台时。播放曲目淡出,但新AVPlayer
实例未开始播放。是否无法在后台创建新的AVPlayer实例?或者我该怎么玩呢?还是有另一种方法来重叠两个轨道?
我可以使用AVQeueuPalyer
进行播放,但是我不能让曲目重叠。有什么建议吗?
- 编辑 -
如果不清楚,我可以根据需要播放背景音频。只是在后台创建一个新的AVPlayer实例不起作用。
答案 0 :(得分:4)
做我想要的正确方法似乎是AVMutableComposition。有了它,我不需要多个AVPlayers和一些其他好处。有关详细信息:我在博客中总结了它:http://www.postblog.me/2012/03/playing-multiple-overlapping-audio-tracks-in-background/
答案 1 :(得分:0)
尝试将名为“UIBackgroundModes”(数组)的密钥添加到应用程序的Info.plist中,并在其中添加值“audio”。然后拨打
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:NULL];
然后你应该能够在后台播放音频(你应该链接到AVFoundation框架)。