Визуализация видеоконтента с контроллера Grails
Без сомнения, еще один глупый вопрос ньюба! У меня есть массив байтов в контроллере Grails, который содержит содержимое видеофайла (файл*. mp4, если быть точным). Я знаком с тем, как визуализировать JSON, XML и другие основные типы из контроллера grails, но я не могу найти примеров, показывающих, как выводить видео. В сущности, я хочу сделать следующее:
render bytes as MP4
Я понимаю, что мне, вероятно, нужна такая конструкция, как:
render(text:"<xml>some xml</xml>",contentType:"video/mpeg",encoding:"UTF-8")
Но я не совсем понимаю, как я получаю массив байтов в там.Очевидно, что я не эксперт по рендерингу html-подобного контента. Я слишком долго прятался за библиотечными функциями! Любые указатели на ссылку или пример будут очень признательны.
Таким образом, если это помогает направить совет в правильном направлении, байты с видео поступают из объекта S3, который я читаю с помощью библиотеки jets3t.
2 ответа:
OutputStream out = response.getOutputStream() //set up byte array byte[] content = yourS3Object.getBytes() response.setContentLength(content.size()) response.addHeader("Content-disposition", "attachment; filename=${yourS3Object.fileName}") response.addHeader("Content-type", "video/quicktime") out.write(content) out.close()
Это должно сработать.
Хотя, конечно, можно подавать видео с контроллера, может быть гораздо более простое решение, если ваша цель состоит только в том, чтобы представить видео QuickTime из браузера. В этом случае вы можете вместо этого попробовать плагин FlashPlayer, доступный с командой:
grails install-plugin flash-player
Как только вы установите этот плеер, вы можете просто вставить следующие строки в ваш view GSP:
<div id="test"> <p>You need Flash Player installed to play this media.</p> </div> <g:flashPlayer id="test" varFile="${createLinkTo(dir: 'movies', file: 'my.mov')}"/>
Потребовалось немного повозиться, чтобы заставить плагин работать с Grails V2, но теперь, когда он на месте, я понимаю, как много работы этот плагин помог мне избежать. Если вы хотите узнать больше, посетите http://grails.org/FlashPlayer + плагин