Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios mpmovieplayercontroller:在后台播放_Ios_Objective C_Ipad_Video_Ios7 - Fatal编程技术网

Ios mpmovieplayercontroller:在后台播放

Ios mpmovieplayercontroller:在后台播放,ios,objective-c,ipad,video,ios7,Ios,Objective C,Ipad,Video,Ios7,我正在制作一个iPad应用程序(iOS7,XCode5) 我正在播放包含视频和音频的HLS流(m3u8)。当设备转到后台时,它停止播放。有没有办法将音频从视频中分离出来,并在视频处于背景时播放视频?苹果似乎不希望你在后台播放视频 有什么想法吗?谢谢。这是可能的,但播放过程中不能没有一点跳跃-视频将自动停止,但由于您的应用程序基本上仍在后台运行,因此您可以再次手动启动视频: 在管理播放器的视图控制器中,添加: [[NSNotificationCenter defaultCenter] addObs

我正在制作一个iPad应用程序(iOS7,XCode5)

我正在播放包含视频和音频的HLS流(m3u8)。当设备转到后台时,它停止播放。有没有办法将音频从视频中分离出来,并在视频处于背景时播放视频?苹果似乎不希望你在后台播放视频


有什么想法吗?谢谢。

这是可能的,但播放过程中不能没有一点跳跃-视频将自动停止,但由于您的应用程序基本上仍在后台运行,因此您可以再次手动启动视频:

在管理播放器的视图控制器中,添加:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil];
然后添加以下方法:

- (void)applicationDidEnterBackground:(NSNotification*)note {
    if (!_callCenter.currentCalls && self.currentPlayer.continuePlaybackInBackground == YES) {
        double delayInSeconds = 0.1;
        dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
        dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
            // call play on your MPMoviePlayerController
        });
    }
}

我发现我必须使用
dispatch\u after
,否则它会在操作系统停止播放之前再次尝试启动电影播放。

您只能播放音频文件(mp3、wav等),不能在后台播放视频文件。在后台播放视频没有意义。如果没有人能看到它们,那又有什么意义呢?如果你只是想播放声音,那么你要么从电影中取出声音文件,要么播放静态音频文件。我知道这是没有意义的。只是我们的视频/音频流是HLS流,据我所知,我不能从中获取音频。此链接显示如何在后台播放音频。我已经用那种方式解决了这个问题。但是,嗯,我似乎不能让这个与MPMoviePlayerController一起工作。它没有一个切换播放状态,我可以告诉你吗?例如,我删除了代码并用注释替换它。您只需在此处的MPMoviePlayerController实例上调用
play
。使用AVSession播放背景音乐(即使您使用MPMovePlayerController播放视频或音频)。如果还想使用control center按钮,请使用远程控制事件。请记住在ViewDidLoad中添加[[UIApplication sharedApplication]beginReceivingRemoteControlEvents]。