【发布时间】:2014-10-27 10:50:45
【问题描述】:
我正在尝试找到一个使用 mediaelement.js 播放器来嵌入相对无品牌的 youtube 视频的功能。
由于 mediaelement.js 是内置在 Wordpress 中的,我当然可以用 chromeless mediaelement api 嵌入代码替换从 oembed 返回的 youtube 品牌 iframe 嵌入代码。
我的网站上有 2000 个视频,但遗憾的是,我无法查看每个视频来更改 youtube 嵌入。这必须通过一个函数来实现!
在我的测试中,mediaelement api 似乎在 ipad 上很烂,所以我使用了 if 语句来排除 ios 设备。使用一点 Jquery,这段代码在 wordpress php 文件中运行良好。
<?php
if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad'))
{
echo '<iframe width="560" height="315" src="//www.youtube.com/embed/TKgDzpc3lZ8?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>';
}
else
{
echo '<video controls="controls" id="youtube1">
<source type="video/youtube" src="//www.youtube.com/embed/TKgDzpc3lZ8"/>
</video>';
}
?>
因此,现在的目标是使用函数执行此操作,并在将 youtube 嵌入发送到浏览器之前将其替换为 str_replace。这是我到目前为止所拥有的,我很清楚我的体重超过了我的体重:
function youtubeme($youtubeme) {
if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad'))
{
}
else
{
return (str_replace('<iframe width="750" height="422"', '<video controls="controls" id="youtube1"><source type="video/youtube" ', $youtubeme));
return (str_replace('?feature=oembed&autoplay=1" frameborder="0" allowfullscreen=""></iframe>', '"/></video>', $youtubeme));
}}
add_action('wp_embed', 'youtubeme');
任何帮助都将不胜感激,因为我仍在学习,到目前为止已经经历了几个小时的痛苦。
//////编辑//////
这是我使用的 Jquery。
jQuery(document).ready(function($) {
$('#youtube1').mediaelementplayer({
alwaysShowControls: true,
// force iPad's native controls
iPadUseNativeControls: true,
// force iPhone's native controls
iPhoneUseNativeControls: true,
// force Android's native controls
AndroidUseNativeControls: true,
})});
【问题讨论】:
-
以防万一有人来到这里。使用其中一些技术,我确实得到了我的无品牌播放器,但我最终使用了 JW 播放器,因为 mediaelementplayer 使用起来相当棘手
标签: php wordpress mediaelement.js oembed