关于Discuz后台编辑器处理MP4播放的问题,可通过以下方案实现:
1. UBB解析增强方案
在source/function/function_discuzcode.php中找到media解析函数,新增MP4的HTML5播放器解析:
- // 在$mediaarray数组中添加MP4类型
- $mediaarray = array('swf','flv','mp4','m4v');
- // 修改媒体解析逻辑(约第620行附近)
- if(in_array($ext, array('mp4','m4v'))) {
- $width = $width ? $width : 600;
- $height = $height ? $height : 400;
- return '<video controls width="'.$width.'" height="'.$height.'" src="'.$url.'"></video>';
- }
复制代码
2. 编辑器附件展示方案
在template/default/forum/editor_menu.htm模板文件中,增加MP4文件类型的播放标识:
- <!-- 在文件类型判断处新增 -->
- <!--{if $attach['ext'] == 'mp4'}-->
- <div class="video-wrapper">
- <video controls src="{echo parseUrl($attach['url'])}"></video>
- </div>
- <!--{/if}-->
复制代码
3. 后台参数配置建议
通过「全局 » 上传设置」确保以下配置:
- 扩展名允许列表包含mp4/m4v
- 媒体文件尺寸限制建议≥50MB
- 启用「媒体文件直接解析」选项
4. 前端播放器优化建议
在common.css中增加样式定义:
- .video-wrapper {
- position: relative;
- padding-bottom: 56.25%; /* 16:9 */
- height: 0;
- }
- .video-wrapper video {
- position: absolute;
- top:0;
- left:0;
- width:100%;
- height:100%;
- }
复制代码
注意事项:
1. 需检查服务器MIME类型配置,确保video/mp4已正确注册
2. 移动端适配需增加playsinline属性
3. 跨域访问需配置CORS策略
4. 建议开启CDN加速提升大文件加载速度
如需更完整的播放器功能(如清晰度切换、倍速播放等),可参考DZ插件网的视频增强组件方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |