在我的应用程序上,我有一个cameraOverlayView打开相机,带有自定义控件,用于相机按钮.该应用程序允许用户在关闭相机之前拍摄多张照片,因此快门按钮不会调用dismissViewControllerAnimated,而是在您完成拍照时有一个关闭按钮.
现在,相机覆盖图上的一个按钮是一个图库按钮,允许用户选择保存的图像而不是拍摄新的图像.我尝试了两种不同的方法来完成这项工作,但都失败了.
第一种方法
使用UIImagePickerController当前显示叠加层的相同实例并切换sourceType到库.它确实呈现了画廊,但是当拍摄照片时,我不能在不解雇整个叠加层的情况下解雇厨房.
第二种方法
创建一个单独的实例UIImagePickerController,设置sourceType为库并尝试调用presentViewController,然后失败并显示警告:
"警告:尝试在窗口层次结构中显示其视图!"
有没有人有这个问题的解决方案?这甚至可能吗?
我正在尝试使用UIImagePickerController委托将录制的视频保存到库中.它适用于图片但如果它是视频则无法保存,如果我打开照片应用程序后尝试保存视频,我会收到一条消息"请等待.Update字符串库",以及带有标签的进度条"重建图书馆".我的照片库已恢复,但视频未添加到其中.
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:@"public.image"]){
UIImage *picture = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImageWriteToSavedPhotosAlbum(picture, nil, nil, nil);
}
else if ([mediaType isEqualToString:@"public.movie"]){
NSString* m_objMediaURL= [info objectForKey:UIImagePickerControllerMediaURL];
NSLog(@"URL is %@", m_objMediaURL);
UISaveVideoAtPathToSavedPhotosAlbum(m_objMediaURL, nil, nil, nil);
}
[self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
上面的NSLog输出如下:
URL is
file://localhost/private/var/mobile/Applications/3800A5FB-2A96-4A7A-85DF-B635E8D9A66C/tmp/capture-T0x1061f0.tmp.JMdxHq/capturedvideo.MOV
Run Code Online (Sandbox Code Playgroud)
有没有人实施过这样的方法,能指出正确的方向吗?
谢谢.
我试图将视频切成两部分,然后用 ffmpeg 重新组装,但最终输出在片段相遇的地方有一个小音频故障。我使用以下命令将视频 1.mp4 分成两部分:
ffmpeg -i 1.mp4 -ss 00:00:00 -t 00:00:02 -异步 1 1-1.mp4
和
ffmpeg -i 1.mp4 -ss 00:00:02 -t 00:00:02 -异步 1 1-2.mp4
一旦我有了这两个部分,我就会将它们连接在一起:
ffmpeg -f concat -i files.txt -c 复制输出.mp4
files.txt 正确列出了这两个文件。谁能指出我问题可能出在哪里?
谢谢