【问题标题】:UIWebView can not play local video file with big sizeUIWebView 无法播放大尺寸的本地视频文件
【发布时间】:2014-02-28 09:54:47
【问题描述】:

我正在构建一个带有应用内浏览器的应用,它将加载本地 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是关于内存警告的,那我是不是要对内存管理做点什么?

【问题讨论】:

  • 也许这会有所帮助:forums.coronalabs.com/topic/…
  • 嗨@Radu 我认为问题不在于 UIWebView。因为当我在设备上运行它时,它不会崩溃,并且视频的帧通过“播放”按钮以斜线显示,并且我无法播放视频,而控制台给出了我在问题中提到的警告.

标签: ios iphone video uiwebview


【解决方案1】:

我知道这是一个老问题,但我很确定我知道为什么会这样。我认为这与苹果的物理设备使用硬件 H264 解码器有关。当您尝试使用<video> 标签播放视频时,它会尝试将整个内容加载到解码器的缓冲区中,但缓冲区不够大。

我认为如果您尝试流式传输(而不是本地渐进式下载)它会起作用。但这要复杂得多。我觉得和软件没有关系,我很确定是硬件的限制造成的。

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    相关资源
    最近更新 更多