[英]How to set allowsEditing for UIImagePickerController only for videos selected from photo library in iOS?
[英]File size is 0 only for videos in Ionic on iOS 13.2 when selecting videos from Photo Library
在我的 Ionic3 应用程序中,我正在计算文件大小,如下所示。
HTML
<div>
<input type="file" accept="*" (change)="onSelect($event)">
<button ion-button (click)="calcSize()">calculate size</button>
</div>
<p>Size: {{ size }}</p>
TS
file: File;
size: number;
onSelect(event: any) {
this.file = event.target.files[0];
}
calcSize() {
this.size = this.file.size;
}
以上代码在 iOS 13.2 以下的所有 Android 设备和 iOS 设备上完美运行。
但是在大于 13.2 的 iOS 设备上从照片库中选择视频时, size
为 0 仅适用于视频文件。
但是从 iCloud Drive 中选择视频时效果很好。
非常感谢任何帮助。
在StackBlitz上查找问题。
我一直在努力寻找解决方案超过 7 天。 我将我的发现作为答案发布,因为它将帮助面临此问题的人。
实际上,我的目的是将带有其他数据的文件上传到Rest API
。 这些功能仅在版本为13.2的iOS
设备上失败。 我找不到解决方案,我决定改变整个实现。 然后我使用相机插件和文件插件从照片库中获取 select 视频。 该实现也仅在版本为13.2的iOS
设备上存在相同的问题。
当使用相机插件在所选视频文件的文件插件中使用readAsDataURL(path, file)
、 readAsArrayBuffer(path, file)
或readAsBinaryString(path, file)
方法时,它给出了FileError 1
(未找到错误)。
问题出在相机插件中。 此错误的原因是照片库资产 url 在 iOS 13 上无效。 为此存在Git 集线器问题。
我在This Link上找到了解决此问题的临时方法。
我在platforms/ios
中手动编辑了src/ios/CDVCamera.h
和src/ios/CDVCamera.m
,如下。
CDVCamera.h
@property (strong) CDVCameraPicker* pickerController;
@property (strong) NSMutableDictionary *metadata;
@property (strong) NSDictionary *latestMediaInfo;// Newly added line
@property (strong, nonatomic) CLLocationManager *locationManager;
@property (strong) NSData* data;
CDVCamera.m
__weak CDVCameraPicker* cameraPicker = (CDVCameraPicker*)picker;
__weak CDVCamera* weakSelf = self;
self.latestMediaInfo = info;// Newly added line
dispatch_block_t invoke = ^(void) {
__block CDVPluginResult* result = nil;
希望这可以帮助面临这个问题的人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.