JSP页面嵌入media player 读取服务器上的视频文件
在JSP页面,嵌入微软的media player 去播放视频,视频的路径存放在本服务器中【即比如web工程放在服务器的D盘,视频文件放在服务器的E盘】,如何使用该media player 去播放视频文件?目前已经解决的是,能够去播放服务器下的某一个英文路径下的某一个英文视频文件,但是无法播放中文路径下的文件【注:凡是路径或者文件名中有中文,就不能够播放,会出现乱码,当然,我也想到了去编码和解码】
jsp页面中,<object>标签下的部分文件:
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
id="MediaPlayer1" width="209" height="147">
<param name="Filename" value="<%=basePath + "EScreenShow?filePath="%><c:out value="${dzxsp_url}" />">
其中:basePath是发布在tomcat下的工程的路径;EScreenShow是一个servlet,在该servlet中可以读取文件路径为filePath下的文件,EScreenShow核心代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String filePath = request.getParameter("filePath");
filePath = new String(filePath.getBytes("iso-8859-1"),"utf-8");
//根据需求,拼接出对应filePath下的视频文件的详细路径
FileInputStream in = null;
OutputStream out = null;
try {
if(filePath!=null){
//in = new FileInputStream("F:\\测试文件\\视频\\北京欢迎你.mpg");
File file = new File(filePath);
File files[] = file.listFiles();
if(files.length>=1){
//正常filePath下可能有多个视频文件,但是目前该功能还没有实现,只取一个文件!用files[0]
in = new FileInputStream(files[0].getAbsolutePath());
out = response.getOutputStream();
byte[] buf = new byte[1024000];
int length;
while ((length = in.read(buf)) != -1) {
out.write(buf, 0, length);
}
out.flush();
}else{
System.out.println("没有找到文件!");
}
}
在浏览器访问服务器的时候,由于每次都只会读取部分流,所以浏览器会多次发出请求去调用doPost方法,在访问某个视频文件 刚开始的时候,filePath 取值是正确的,但是在最后几次访问的时候,如果视频文件或者路径下有中文,就会出现乱码!
【注】在后台将filePath传到前台时,已经使用utf-8编码过了
乱码这问题如果解决?或者大家对这种在jsp页面嵌入media player 去播放视频文件,有啥好的方法没?
万分感谢………………