play 2 アプリケーションから HTML5 ビデオ プレーヤーにビデオをストリーミングするにはどうすればよいですか?
play stream docのソリューションを使用すると、ビデオを受信できますが、ビデオ プレーヤーでのビデオの長さは無限大です。
play 2 アプリケーションから HTML5 ビデオ プレーヤーにビデオをストリーミングするにはどうすればよいですか?
play stream docのソリューションを使用すると、ビデオを受信できますが、ビデオ プレーヤーでのビデオの長さは無限大です。
私はこの解決策を採用しました。
def stream(id: Long) = Action {
implicit r =>
val v = videos.where(_.id === id).single
val file = new java.io.File(v.filePath)
import ExecutionContext.Implicits.global
val fileContent: Enumerator[Array[Byte]] = Enumerator.fromFile(file)
SimpleResult(
header = ResponseHeader(200, Map(
CONTENT_LENGTH -> file.length.toString,
CONTENT_RANGE -> s"bytes */${file.length.toString}",
ACCEPT_RANGES -> "bytes",
CONTENT_TYPE -> v.format,
PRAGMA -> "public",
CONTENT_TRANSFER_ENCODING -> "binary",
CONTENT_DISPOSITION -> "attachment"
)),
body = fileContent
)
}