我正在尝试将 mp4 文件从 Grails 控制器流式传输到 iOS 设备(iPhone 和 iPad):
def streamContent() {
def contentPath = "/path/to/file"
File f = new File(contentPath)
if(f.exists()) {
response.setContentType("video/mp4")
response.outputStream << f.newInputStream()
response.outputStream.flush()
response.outputStream.close()
} else {
render status: 404
}
}
此代码在 safari 等桌面浏览器上运行良好(我看到了视频),但是当我使用 iPhone 或 iPad 访问同一页面时,视频将无法播放。请注意,如果我将相同的视频放在 Apache httpd 上并从 iOS 设备请求它,则没有问题。所以它一定是一个流媒体问题。
在 html 页面上,视频使用 HTML5 video 标签嵌入:
<video width="360" height="200" controls>
<source src="http://localhost:8080/myapp/controller/streamContent" type='video/mp4'>
</video>