我正在使用应用内浏览器构建应用,该应用会加载本地html
文件以查看文本,音频和视频。我将所有这些媒体文件保存在Documents目录中。问题是当我在设备上运行应用程序并且UIWebView
加载视频文件(mp4格式,> 500mb - 文件大小对于iOS来说太大了吗?)我总是从控制台收到警告:
malloc: *** mmap(size=569212928) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
但是当我在模拟器上运行时,它运行得很好。
当我用另一个大约100MB的视频文件替换它时,它可以在模拟器和设备上运行。我正在使用的设备是iPhone 4s,iOS 6。
我错过了什么吗?我知道错误代码12是关于内存警告的,所以我必须对内存管理做些什么吗?
答案 0 :(得分:0)
我知道这是一个老问题,但我很确定我知道为什么会这样。我认为这与苹果的物理设备使用硬件H264解码器这一事实有关。当您尝试使用<video>
标记播放视频时,它会尝试将整个内容加载到解码器的缓冲区中,这不够大。
我认为如果您尝试流式传输(而不是本地渐进式下载),它就可以正常工作。但那要复杂得多。我不认为它与软件有任何关系,我很确定这是由于硬件的限制。