在不丢失iPod音乐的情况下播放加载动画

时间:2011-10-14 20:40:00

标签: objective-c ios mpmovieplayercontroller

我有一个包含几个动画的应用程序。要加载这些动画,我使用MPMoviePlayerController。 问题是,如果用户当前正在使用后台模式的应用程序收听某些音乐,则MPMoviePlayerController会淡出音乐,即使我的动画不包含任何声音。

以下是我用来实例化播放器的代码

NSString *moviePath = [[NSBundle mainBundle] pathForResource:@"anim-geoloc" ofType:@"mp4"];
NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain];

player = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
player.repeatMode = MPMovieRepeatModeOne;
player.controlStyle = MPMovieControlStyleNone;
player.movieSourceType = MPMovieSourceTypeFile;
player.shouldAutoplay = YES;
player.useApplicationAudioSession = YES;
[player prepareToPlay];

[movieURL release];

我尝试更改 useApplicationAudioSession 属性但它什么都没改变。

如何在不丢失音乐播放的情况下播放动画?有没有更好的方法来执行动画?

由于

1 个答案:

答案 0 :(得分:2)

好的,我发现了什么事情发生了。当您使用MPMoviePlayerController并且想要与其他应用程序共享音频会话时,您必须创建这样的音频会话。

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryAmbient error:NULL];

[session setActive:YES error:NULL];

有了这个,我的动画不再停止iPod应用程序的声音了。