我有一个带有简短介绍视频的iPhone应用程序 . 如果用户在iPod正在播放音乐时启动应用程序,音乐将在视频播放时停止(无论视频是否有声音),并且视频播放后音频将永久停止 . Apple似乎表明你可以用AudioSession技巧来解决这个问题:http://www.devworld.apple.com/iphone/library/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/WorkingWithOpenALiPodMusicandMovies/WorkingWithOpenALiPodMusicandMovies.html
但他们在这里的建议似乎并不奏效;似乎MPMoviePlayerController会为了自己的目的覆盖音频会话配置 . 理想情况下,我将电影音频混合在iPod音频上,或者可能使用闪避,但即使重新启动音乐也可能是一个可以修复的问题 . 有任何想法吗?
3 回答
我找到了一个很好的解决方案 . 在.h文件中,您必须创建一个名为“wasPlaying”的BOOL . 在播放视频之前,您会询问iPod是否正在播放 .
然后,在告诉电影播放器播放后,您可以调用以下内容:
之后,在方法finishPlaying中:
对我来说它工作得很好!
我认为您可以通过初始化类似于此的音频会话来完成此操作:
然后,当您想要使用音频会话时,您可以设置iPod音频以避开视频轨道:
您可以随时使用一个音乐提供应用程序和多个(简短)声音源 . 如果后台应用正在播放音乐,您的应用可以覆盖简短的声音 . 如果您想播放音乐,必须停止后台应用 .
因此,我不认为使用MPMoviePlayerController(或任何高级音频框架)可以实现的目标 . 您可以覆盖电影的音轨,如果它足够短但MPMoviePlayerController可能不适合这个 .