Grails コントローラーから mp4 ファイルを 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 width="360" height="200" controls>
<source src="http://localhost:8080/myapp/controller/streamContent" type='video/mp4'>
</video>