4

play 2 アプリケーションから HTML5 ビデオ プレーヤーにビデオをストリーミングするにはどうすればよいですか?

play stream docのソリューションを使用すると、ビデオを受信できますが、ビデオ プレーヤーでのビデオの長さは無限大です。

4

1 に答える 1

5

私はこの解決策を採用しました。

 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
      )
  }
于 2013-10-16T00:44:54.643 に答える