在UIWebView
中查看大型(至少 1GB(文档、音频和视频文件时出现问题。
我想问一下是否有任何方法可以查看这些大文件,因为从普通的苹果设备只有 1GB RAM,因此应该无法查看比这更大的文件(更不用说操作系统本身的内存消耗和其他后台任务(。
我可以在使用 webview 时在 iPhone 电影播放器中观看大(~2gb( 电影,但不能在我的应用程序中观看,所以我认为应该有一种方法可以做到这一点,但找不到网络的建议。
有了它应该是可能的,所以有什么办法可以做到这一点,因为 webview 似乎无法处理大文件,因为它肯定会耗尽内存。
我需要能够NSData
传递文件,因为设备中的文件是加密的,必须始终保持这种状态。
这是我显示音频/视频文件的方式:
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
函数时是不可能的。我们必须限制可以查看的文档的大小,以防止与内存不足相关的崩溃。
希望将来这个问题会有解决方案,我会将答案奖从这个答案移到对这个问题有有效答案的答案