使用 UIWebView 查看大型 (~1GB) 文档、音频或视频文件

Viewing large (~1GB) Document, audio or video files using UIWebView

UIWebView 中查看大型(至少 1gb)文档、音频和视频文件时出现问题。

我想问问有什么方法可以查看这些大文件,因为苹果设备的平均内存只有 1GB,因此应该无法查看更大的文件(更不用说内存消耗了OS 本身和其他后台任务)。

我可以在 iPhone 电影播放器​​中观看大型(~2gb)电影,但在使用 webview 时不能在我的应用程序中观看,所以我认为应该有办法做到这一点,但找不到求建议的网站。

有了它应该是可能的,那么有什么办法可以做到这一点,因为 webview 似乎无法处理大文件因为它肯定会 运行 内存不足 .

我需要能够将文件作为 NSData 传递,因为设备中的文件已加密并且必须始终保持这种状态。

这是我显示 audio/video 个文件的方式:

NSString *contentType = [MIMETypeToFileExtViceVersaConverter convertFileExtensionToMimeType:shareWithObject.fileExtension];

NSString *base64String = [fileData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

NSString *str = [NSString stringWithFormat:@" \
                     <html><head></head><body style=\"margin:0;width:100%%;height:100%%;\">\
                     <video controls height=\"100%%\" width=\"100%%\"> \
                     <source type=\"%@\" src=\"data:%@;base64,%@\"> \
                     </video></body></html>", contentType, contentType, base64String];

[self.webView loadHTMLString:str baseURL:[[NSBundle mainBundle] resourceURL]];

这是文档文件:

NSString *contentType = [MIMETypeToFileExtViceVersaConverter convertFileExtensionToMimeType:shareWithObject.fileExtension];

[self.webView loadData:fileData MIMEType:contentType textEncodingName:@"UTF-8" baseURL:[[NSBundle mainBundle] resourceURL]];

使用 UIWebView 的 loadData 功能时,这是不可能的。我们必须限制可以查看的文档的大小,以防止与内存不足相关的崩溃。

希望以后能有这个问题的解决方案,我会把这个答案的答案奖移到对这个问题有正确答案的那个