如何解决在这种情况下,xcode会挂在视频剪辑上很少且随机,并且奇怪的是iPhone屏幕记录也会挂起
iOS应用程序启用了在大多数情况下都可以完美工作的视频修剪(本地录制的视频,相机胶卷访问视频以及本地录制的应用程序屏幕录制的视频-都出现相同的问题)。偶尔且随机地,在较长的延迟与修剪的导出部分上永远出现的旋转器之间找到某个位置-永远不要保存它。
令人惊讶的是-当我们遇到此问题时,iphone屏幕录像机也会在很长一段时间内挂起,甚至可能永远挂起(只能等待这么长时间...)。意思是停止,而不是立即说出保存内容并转到相机胶卷,这不会发生很长时间到永远。
其他信息:
- 在这种“状态”下,使用相机胶卷视频构建的独立应用程序也会挂在那里。
- 我不确定我们的应用会引起问题。关闭应用程序并重新启动时-无法清除。似乎不得不重新启动设备或有时等待很长时间。
- 无法复制
- 大多数时候在一台设备上看到过,但确实在另一台设备上出现过。
- 尝试过的第三部分应用程序也可以修剪-有效。另外-iPhone原生相机仍然可以使用。
- 短片和屏幕记录
- 如果清除此状态-屏幕记录和修剪完成同时进行。
问题:
- 任何建议的替代设置以修剪视频。第三方在这种状态下工作,因此有解决方案。或其他方法-ffmpeg只是我想到的一种,但是太慢了。
- 我们的应用是否可能导致此问题?搞砸iPhone屏幕录像机对我们来说似乎很难...
- 任何可能导致iphone屏幕记录保存延迟的吸烟枪。
感谢任何想法-在任何地方都找不到真正的东西。
这是几乎始终有效的代码-卡在“正在导出...”上-如果离开应用然后返回-说“导出失败”
if (self.phasset == nil) {
[self trimOriginal];
self.isExportInProgress = NO;
return;
}
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
alertController.popoverPresentationController.sourceView = self.view;
alertController.popoverPresentationController.sourceRect = CGRectMake(self.view.bounds.size.width / 2.0,self.view.bounds.size.height / 2.0,1.0,1.0);
UIAlertAction *saveAction = [UIAlertAction actionWithTitle:@"Save as New Clip" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[self showSpinnerWithMessage:@"Exporting ..."];
__weak TrimViewController *weakSelf = self;
NSString *path = self.tempVideoPath;
[self exportAsset:self.asset preset:AVAssetExportPresetPassthrough completion:^(BOOL success,NSURL * _Nullable url) {
__strong TrimViewController *strongSelf = weakSelf;
if (!strongSelf) { return; }
if (!strongSelf) {
[strongSelf hideSpinner];
[Utils showAlert:strongSelf title:@"Error" message:@"Export failed"];
strongSelf.isExportInProgress = NO;
return;
}
strongSelf.spinnerLabel.text = @"Saving ...";
NSURL *movieUrl = [NSURL fileURLWithPath:path];
AVAsset *trimmed_asset = [AVAsset assetWithURL:movieUrl];
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
[PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:movieUrl];
} completionHandler:^(BOOL saved,NSError * _Nullable error) {
dispatch_async(dispatch_get_main_queue(),^{
strongSelf.isExportInProgress = NO;
[strongSelf hideSpinner];
if (error) {
[Utils showAlert:strongSelf title:@"Error" message:@"Video Saving Failed"];
} else {
strongSelf.saveAsNewClip = FALSE;
[strongSelf.delegate trimedVideoAsset:strongSelf asset:trimmed_asset];
}
});
}];
}];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。