我想在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 ...
请帮忙。
答案 0 :(得分:0)
你需要一个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
}
}
}