zoukankan      html  css  js  c++  java
  • kindeditor上传及播放视频的问题

    kindeditor是一款传统的编辑器,年代久远,有些新功能不支持。比如上传和播放视频就很容易出问题。

    上传

    一是格式,二是大小。这些都好解决,但这次遇到一个隐藏的问题。页面报错:

    System.Web.HttpException:“超过了最大请求长度。”

    对应报错文件为:
    HttpPostedFile imgFile = context.Request.Files["imgFile"];
    原因:
    asp.net默认Request文件大小为4M,而上传视频远超。
    修改:
    Web.config文件:
    httpRuntime 节点增加 maxRequestLength = "51200",单位为KB,设置为50M。

    播放:

    上传成功后页面无法播放视频,显示插件不支持。

    原因:
    kindeditor编辑器默认为上传的视频文件生成embed标签,而该标签已不受支持。
    修改:
    让KindEditor使用H5 video标签播放视频。

    将kindeditor-all.js文件中的embed替换为video,再增加一些相应的设置,如控制栏,循环和自动播放等。

    打开/kindeditor/kindeditor-all.js
    首先在Ln304行:
    embed: ['id', 'class', 'src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess', 'wmode'],
    后增加:
    video: ['id', 'class', 'src', 'width', 'height', 'type', 'loop', 'autoplay', 'quality', '.width', '.height', 'align', 'controls', 'muted','controlslist'],
    注:这里增加这些属性非常重要,如果不列出的话,保存时后台会自动屏蔽掉。即使在_mediaEmbed函数中重定义了html字符串也不行。

    1. 修改 function _mediaType(src)  函数,增加mp4、ogg、webm的类型定义:

    if (/.(mp4)(?|$)/i.test(src)) {
        return 'video/mp4';
    }
    if (/.(ogg)(?|$)/i.test(src)) {
        return 'video/ogg';
    }
    if (/.(webm)(?|$)/i.test(src)) {
        return 'video/webm';
    }

    2. 修改 function _mediaEmbed(attrs)  函数,判断如果是mp4格式则使用video标签:

    if (attrs.type == "video/mp4") {
        var html = '<video ';
        _each(attrs, function (key, val) {
            html += key + '="' + val + '" ';
        });
        html += ' controls="controls" autoplay="autoplay" muted="muted" controlslist="nodownload" />';
    }

    注:谷歌会禁止自动播放功能,即使加了autoplay属性也不管用,IE可以。解决办法是增加muted,即设为静音谷歌就允许自动播放了。另外controlslist="nodownload"是为了拿掉控制栏中的“下载”按钮。

    js压缩成min.js:

    实际中使用的是kindeditor-all-min.js,修改好kindeditor-all.js以后,还需要进行压缩。压缩方法如下:
    先下载安装node.js
    然后在node.js的npm里安装uglify
    npm install uglify-js -g
    压缩js文件:
    uglifyjs kindeditor-all.js -o kindeditor-all-min.js
    或者
    uglifyjs kindeditor-all.js -m -o kindeditor-all-min.js  -m参数就是把变量名变成a, b, c, d这样,压缩出来的文件会更小。

  • 相关阅读:
    类似最长递增子序,记忆化DP—— Codeforces Beta Round #4 (Div. 2 Only)D Mysterious Present
    最小逆序数对——hdu1394
    区间更新 求总区间——hdu1754
    抽象类 虚函数实现
    poj2271
    poj2246
    poj2410
    poj2567
    poj2247
    Integration Services 学习(7):包部署 (转自游子吟)
  • 原文地址:https://www.cnblogs.com/wildorchid/p/14898661.html
Copyright © 2011-2022 走看看