视屏播放与图片展示展示一样,一般把图片或者视屏放到服务器或者资源服务器,或者CDN上通过URL的方式访问,也可以通过以流的方式输出到客户端浏览器,flv的视屏播放示例如下
一.创建一个web项目
1.创建一个servlet
/** * Servlet implementation class FlvBFServlet */ @WebServlet("/FlvBFServlet") public class FlvBFServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public FlvBFServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) { response.reset(); response.setCharacterEncoding("utf-8"); response.setContentType("video/x-flv;charset=utf-8"); HttpURLConnection connection = null; ByteArrayOutputStream bos = null; BufferedInputStream bis = null; try{ // new URL("xx")为flv文件地址,根据实际路径调整 URL url = new URL("http://abc.com/download/lesson301.flv"); connection = (HttpURLConnection) url.openConnection(); // 设置连接超时时间 connection.setConnectTimeout(10000); // 设置读超时时间 connection.setReadTimeout(10000); // 打开到此 URL 引用的资源的通信链接(如果尚未建立这样的连接) connection.connect(); // 获得响应状态信息 if (connection.getResponseCode() != HttpURLConnection.HTTP_OK){ return; } //每次读取的字节数 byte[] bytes = new byte[1024]; //获得输入流 bis = new BufferedInputStream(connection.getInputStream(), connection.getContentLength()); //每次读取的字节长度 int len; //设置输入流 bos = new ByteArrayOutputStream(bis.available()); while((len = bis.read(bytes, 0, bytes.length)) != -1){ bos.write(bytes, 0, len); } response.getOutputStream().write(bos.toByteArray()); response.flushBuffer(); }catch(Exception e){ e.printStackTrace(); }finally{ try { bos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { bis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } connection.disconnect(); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
2.创建flv.jsp 在根目录
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="640" height="480" id="VideoPlayer" align="middle"> <param name="allowScriptAccess" value="*" /> <param name="allowFullScreen" value="true" /> <param name="movie" value="http://abc.com/download/flvplayer.swf" /> <param name"quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="http://abc.com/download/flvplayer.swf" quality="high" bgcolor="#000000" width="640" height="480" name="VideoPlayer" align="middle" allowScriptAccess="*" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="vcastr_file=http://localhost:8080/YangUp/FlvBFServlet" /> </object> </body> </html>
其中:http://mgrtest.roadshowcenter.com/download/flvplayer.swf flv视屏播放器自行下载即可,放到指定的路径,此处也要做相应的调整
vcastr_file:http://localhost:8080/YangUp/FlvBFServlet 获取输出流的服务器的服务器请求地址
3.启动服务访问
http://localhost:8080/YangUp/flv.jsp 就可以看见期望的内容了
4.可以对访问资源的请求做些条件限制,比如用户,header中的Referer 以及请求ULR的时效限制等
相关推荐
JAVA读写二进制文件
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileOperation { public static void...
java读取二进制文件
主要介绍了Java实现的进制转换工具类,结合完整实例形式分析了Java实现二进制、十六进制、字符串、数组等相关转换操作技巧,需要的朋友可以参考下
java 二进制文件的读写操作使用FileInputStream FileOutputStream
Java把十进制转成二进制(任意进制)的程序
读取文件中的二进制文件并将二进制转换成文本文档并输出
java语言编写的十进制正数和负数转换二进制算法。
输入一个十进制数可以转化成二进制,八进制,十六进制。.java格式的右键编辑可以打开。
整数转二进制补码的源代码 提供了两种方法:一种调用java api中的方法。另一种是自己实现的。
java随机生成二进制数-java–随机二进制搜索算法 随机搜索算法.pdf
java二进制运算器(加、见、乘、除)**********
java实现任意进制的转换,包括2进制转16进制,10进制转16进制,10进制转任意进制,36进制加法,可自行手动设置转换进制和需要转换的数字.
14. * java.io包中的OutputStream及其子类专门用于写二进制数据。 15. * FileOutputStream是其子类,可用于将二进制数据写入文件。 16. * DataOutputStream是OutputStream的另一个子类,它可以 17. * 连接到一个...
JAVA二进制读写库(读取)
* 压缩图片,将图片压缩后以二进制的形式输出 * * @param file * 将要压缩的图片 * @param width * 压缩宽(长度短的做宽) * @param height * 压缩长(长度长的做长) * @return byte[]二进制流 */
任意输入一个十进制整数,包括正数负数,通过程序实现可以输出相应的二进制编码
二进制的转换;数据类型的由来,java的进制转换,数据的类型范围,转码,补码,反码的算法
JAVACLASS二进制文件加密专家
java 二进制,位左移,位右移PPT java 二进制,位左移,位右移 java 二进制,位左移,位右移