从照片库中选择视频时,文件大小仅适用于 iOS 13.2 上 Ionic 中的视频
Posted
技术标签:
【中文标题】从照片库中选择视频时,文件大小仅适用于 iOS 13.2 上 Ionic 中的视频【英文标题】:File size is 0 only for videos in Ionic on iOS 13.2 when selecting videos from Photo Library 【发布时间】:2019-11-21 12:27:22 【问题描述】:在我的 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;
以上代码可在所有 android 设备和 ios 13.2 以下的 iOS 设备上完美运行。
但在 iOS 设备上从大于 13.2 的照片库中选择视频时,size
仅适用于视频文件为 0。
但是从 iCloud Drive 中选择视频时效果很好。
非常感谢任何帮助。
在StackBlitz 上查找问题。
【问题讨论】:
这对我来说似乎是一个错误,您是否已向 github 中的正确 repo 报告过? @ ZetaPR 谢谢,是的,我向 ionic repo 报告了。是否有任何回购报告 我已经看到报告的错误并移至新的 Ionic 存储库。对于任何想要关注它的人:github.com/ionic-team/ionic-v3/issues/1077 【参考方案1】:我认为它不是离子错误。规格说明如下:
在获取时,符合要求的用户代理必须返回 字节
https://w3c.github.io/FileAPI/
似乎是一个 ios 错误。
【讨论】:
感谢您的帮助。我向你提供赏金。【参考方案2】:我为寻找解决方案苦苦挣扎了 7 天多。我将我的发现作为答案发布,因为它将帮助面临此问题的人。
实际上我的目的是将文件与其他数据一起上传到 Rest API
。这些功能仅在版本为 13.2 的 iOS
设备上失败。我找不到解决方案,我决定改变整个实现。然后我使用 Camera 插件和 File 插件从照片库中选择视频。该实现也仅在版本为 13.2 的 iOS
设备上存在相同的问题。
在 File 插件中使用 readAsDataURL(path, file)
、readAsArrayBuffer(path, file)
或 readAsBinaryString(path, file)
方法时使用 Camera 插件在选定的视频文件上提供 FileError 1
(未找到错误)。
问题出在 Camera 插件中。此错误的原因是 照片库资产 url 在 iOS 13 上无效。为此有一个Git Hub Issue。
我在 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;
希望这对面临此问题的人有所帮助。
【讨论】:
以上是关于从照片库中选择视频时,文件大小仅适用于 iOS 13.2 上 Ionic 中的视频的主要内容,如果未能解决你的问题,请参考以下文章
UIImagePickerController allowedEditing=YES 仅适用于视频
如何仅为从 iOS 中的照片库中选择的视频设置 UIImagePickerController 的allowEditing?