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



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函数时是不可能的。我们必须限制可以查看的文档的大小,以防止与内存不足相关的崩溃。

希望将来这个问题会有解决方案,我会将答案奖从这个答案移到对这个问题有有效答案的答案

相关内容

最新更新