我有一个包含几个动画的应用程序。要加载这些动画,我使用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 属性但它什么都没改变。
如何在不丢失音乐播放的情况下播放动画?有没有更好的方法来执行动画?
由于
答案 0 :(得分:2)
好的,我发现了什么事情发生了。当您使用MPMoviePlayerController并且想要与其他应用程序共享音频会话时,您必须创建这样的音频会话。
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryAmbient error:NULL];
[session setActive:YES error:NULL];
有了这个,我的动画不再停止iPod应用程序的声音了。