【发布时间】:2011-09-16 17:28:19
【问题描述】:
当我尝试从 webcontent 目录中的文件查看 jwplayer 中的视频时,它会显示并且我可以播放它,但是当我从数据库中读取 same 文件并以flv via servlet 它不显示。谁能帮帮我?
在 Html 文件中:
<script type='text/javascript' src='/ThoughRecord18-8/jwplayer.js'></script>
<script type='text/javascript'>
jwplayer('mediaspace').setup({
'flashplayer': '/ThoughRecord18-8/player.swf',
'file': '/ThoughRecord18-8/videoss?videoId=1',
'controlbar': 'bottom',
'width': '470',
'height': '320'
});
</script>
servlet 是
String videoId = request.getParameter("videoId");
if (videoId != null || !videoId.equals("")) {
VideoDao dao = new VideoDao();
Video video = dao.getVideo(videoId);
Blob blob = video.getVideoBlob();
byte[] buf = new byte[1024];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream in = null;
int len;
try {
len = (int) blob.length();
byte[] rb = new byte[len];
InputStream readImg = blob.getBinaryStream();
int index = readImg.read(rb, 0, len);
...
response.reset();
response.setBufferSize(DEFAULT_BUFFER_SIZE);
response.setContentType("video/x-flv");
response.setContentLength(rb.length);
response.setHeader("Content-Disposition", "inline; filename=file.flv");
byte[] content = new byte[DEFAULT_BUFFER_SIZE];
BufferedInputStream is = new BufferedInputStream(
new ByteArrayInputStream(rb));
OutputStream os = response.getOutputStream();
while (is.read(content) != -1) {
os.write(content);
}
is.close();
os.close();**
【问题讨论】:
-
如果绕过 JWPlayer 从浏览器的地址栏直接调用 servlet 会发生什么?
-
@Mike - 我不太确定你将“在 Html 文件中:”移到哪里才有意义 - 它显然也是 servlet 代码,而它之前显然是 HTML。
-
实际上,当我编辑它时,它是问题的最后一行,没有意义,所以我将它向上移动了一个块,但你是对的,但仍然不对。
-
当我从浏览器的位置栏调用它时,它要求我打开或保存 flv 视频,但问题是如何在 JWPlayer 中播放 flv 视频,flv 文件与文件相同在数据库中,当我在 html 文件中输入以下文件时它可以工作:'/ThoughRecord18-8/file.flv',但是当我调用 servlet 文件时':'/ThoughRecord18-8/videoss?videoId=1',它不起作用是否有任何解决这个问题的方法
标签: java javascript jsf