将ueditor上传的视频转换为flowplayer播放,并隐藏其播放地址

1、在页面引用flowplayer-min.js;

2、将ueditor上传的video标签内容转换成div标签内容,替换后的内容形式如下:

<div src="videoReplaceUrl" style="height:400px;" class="video-js"></video>

3、用jquery遍历class为video-js的div,注册flowplayer播放元素;

/*遍历*/
var video_index = 1;
        $(".video-js").each(function()
        {
            var divVideoId = "divVideo" + video_index;
            $(this).attr("id", divVideoId);
            var videoUrl = $(this).attr("src");
            changeToFlowplayer(videoUrl, divVideoId);
            video_index++;
         });

/*转换成flowplayer播放*/
function changeToFlowplayer(videoUrl, divVideoId)
    {
        var ts = new Date().getTime()/1000;
        ts = ts.toString(16);
        ts = ts.split(".")[0];
        var playing = false;
        var autoPlay = false;
        
        flowplayer(
            divVideoId,
            "/xxx/flowplayer/flowplayer-3.2.8.swf",
            {
                plugins: {
                    secure: {
                        url: 'flowplayer.securestreaming-3.2.3.swf',
                        timestamp: ts,
                        token: "xxxxx"
                    }
                },
                clip:{
                    autoPlay: autoPlay,
                    autoBuffering: false,
                    urlResolvers: 'secure',
                    baseUrl: '/swf-play',
                    onStart : function() {
                        if(!playing && typeof(playCallBack)=='function'){
                            playCallBack();
                            playing = true;
                        }
                    }
                },
                  playlist: [videoUrl]
            }
        );
    }
4、当使用flowplayer播放上时,会生成如下形式url:

http://navy.com/swf-play/05538e221a147e28d206378e66740058/55e3ca51/1440758930760
这时已经达到隐藏url的目的,其中05538e221a147e28d206378e66740058为ts、token、videoUrl通过md5加密生成。ts:55e3ca51;videoUrl:1440758930760

5、接下来就是针对伪url进行处理;

在nginx下,对伪url进行重写操作,让它跳转到处理的swf-play.action中。

rewrite  ^/swf-play/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z\.]+)$ /swf-play.action?ts=$2&token=$1&name=$3 last;

6、在swf-play.action中拿到ts、token、name进行解密验证,以判断该请求是否通过,如通过,读取视频流,写到结果里面,播放视频。

//验证
String hashSalt = getHashSalt();
String temp = DigestUtils.md5Hex(hashSalt + "/" + name + ts);
boolean result = temp.equals(this.token);
return result;

//返回视频流
BufferedInputStream bis = null;
ServletOutputStream os = null;
File f = null;
f = new File(realPath);
bis = new BufferedInputStream(new FileInputStream(f));
int available = bis.available();
HttpServletResponse response = getResponse();
response.setContentType("application/x-shockwave-flash");
response.addHeader("x-app", "xxx");
response.addHeader("Content-Length", f.length() + "");
response.addHeader("Cache-Control", "private");
os = response.getOutputStream();
byte[] b = new byte[1024];
int begin = 0;
int readCount = 0;
while (begin <= available) {
	readCount = bis.read(b);
	if (readCount <= 0) {
		break;
        }
	os.write(b, 0, readCount);
	begin += readCount;
}



在Java中将Word转换为HTML需要使用Apache POI和JodConverter库。而将HTML导入到UEditor编辑器中,需要在前端使用UEditor富文本编辑器,并在后端使用Java Web框架(如Spring MVC)来处理上传文件和保存HTML内容。 以下是一个简单的Java代码示例,演示如何将Word文档转换为HTML,并将HTML保存到服务器上的文件中: ```java import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hwpf.HWPFDocument; import org.jodconverter.JodConverter; import org.jodconverter.office.LocalOfficeManager; import org.jodconverter.office.OfficeException; import org.jodconverter.office.OfficeManager; public class WordToHtmlConverter { public static void main(String[] args) { // Start the office manager OfficeManager officeManager = LocalOfficeManager.builder().officeHome("/usr/lib/libreoffice").install().build(); try { officeManager.start(); // Load the Word document HWPFDocument document = new HWPFDocument(new FileInputStream("document.doc")); // Create a temporary file for the HTML output File tempFile = File.createTempFile("document", ".html"); // Convert the document to HTML JodConverter.convert(document).to(tempFile).execute(); // Save the HTML content to a file on the server FileOutputStream fos = new FileOutputStream("output.html"); fos.write(Files.readAllBytes(tempFile.toPath())); fos.close(); // Delete the temporary file tempFile.delete(); } catch (IOException | OfficeException e) { e.printStackTrace(); } finally { // Stop the office manager officeManager.stop(); } } } ``` 在上述代码中,我们使用JodConverter将Word文档转换为HTML,并将HTML内容保存到服务器上的文件中。然后,我们可以在Java Web应用程序中使用Spring MVC等框架来处理上传文件,并将HTML内容保存到数据库中。最后,在前端使用UEditor富文本编辑器时,我们可以将HTML内容加载到编辑器中,让用户进行编辑和保存。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值