在后台创建新的AVPlayer不起作用?

时间:2012-03-08 13:52:11

标签: ios cocoa-touch avfoundation avplayer

我正在用AVPlayer播放音乐。现在在某个时间NSTimer发射并且我想要褪色到另一个轨道。所以我开始淡出我的AVPlayer并创建一个新的AVPlayer实例来播放下一首歌。

在前景时,它按预期工作。但是当我的应用程序在后台时。播放曲目淡出,但新AVPlayer实例未开始播放。是否无法在后台创建新的AVPlayer实例?或者我该怎么玩呢?还是有另一种方法来重叠两个轨道?

我可以使用AVQeueuPalyer进行播放,但是我不能让曲目重叠。有什么建议吗?

- 编辑 -

如果不清楚,我可以根据需要播放背景音频。只是在后台创建一个新的AVPlayer实例不起作用。

2 个答案:

答案 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框架)。