以下代码请求相机许可并显示视频。必须在 9 秒后调用函数 videoFinished。这在 iphone 5 和 7 plus 中不起作用。
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted){
if(granted)
{
dispatch_sync(dispatch_get_main_queue(), ^{
[self.player play];
[self performSelector:@selector(videoFinished) withObject:nil afterDelay:9];
});
}
else
{
dispatch_sync(dispatch_get_main_queue(), ^{
[self noPermission];
});
}
编辑
[self.player play];
[self performSelector:@selector(videoFinished) withObject:nil afterDelay:9];
这段代码也没有调用 videoFinished 方法。
最佳答案
dispatch_sync(dispatch_get_main_queue()
当您已经在主队列中时,将其锁定。
使用 dispatch_async
。
并使用 dispatch_after
片段代替 performSelector:...afterDelay
关于ios - performSelector 未在 iPhone 5 和 7 Plus 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44161541/