我想在我的jsp页面上嵌入并播放一个视频文件。我所做的是,我创建了一个jsp,并在其上添加了以下标记:
<EMBED SRC="${pageContext.request.contextPath}/home/Hibernate.mp4" WIDTH="200" HEIGHT="100" AUTOPLAY="TRUE" LOOP="true"></EMBED>但问题是它总是试图在我的war文件中找到视频,也就是说,如果我在我的war文件中将视频保存为以下文件夹结构/home/Hibernate.mp4,那么只有我可以播放它。
但是我需要在我的jsp上播放许多视频,所以我想把所有的视频保存在我的服务器上的某个地方。
那么我应该怎么做才能玩这些。我是否应该使用servlet,然后读取视频的字节并将它们放到out.println上……
请帮帮忙。
发布于 2013-11-09 20:20:02
你需要一个servlet的家伙。
假设电影位于服务器的/home/movie路径下。
因此,您需要提供一个servlet来打开所需的电影并将其响应给客户机。
例如,客户端请求http://127.0.0.1:8080/showmov?name=pulse1995.mpg
这里的/showmov是一个servlet,这个servlet只获取请求参数(id),在电影文件夹中搜索并响应它。
package test;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/showmov")
public class ShowMovie extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id=request.getParameter("id");
if(id!=null && !id.equals("")){
FileInputStream fis=new FileInputStream("/home/moview/"+id);
response.setContentType("movie/mpeg");//not sure about this mime type
response.setContentLength((int) fis.getChannel().size());
int r;
byte[] buff=new byte[1024];
while((r=fis.read(buff))==buff.length){
response.getOutputStream().write(buff);
}
response.getOutputStream().write(buff,0,r);
response.getOutputStream().flush();
}else{
//maybe show a list
}
}
}https://stackoverflow.com/questions/19872723
复制相似问题