实现mediaElement.js会导致错误

时间:2012-12-29 17:47:26

标签: javascript joomla media-player media

我正在尝试在我正在研究的Joomla网站上实现mediaElement.js解决方案,但我遇到了一些问题。以下错误在我的梦中困扰着我:P:

Uncaught TypeError: Object [object Object] has no method 'mediaelementplayer'

我会假设/mediaelement-and-player.min.js但是控制台除了已经提到的错误外没有显示任何错误。

我已将以下内容添加到模板头:

$this->API->addJS($this->API->URLtemplate() . '/mediaElement/build/mediaelement-and-player.min.js');
$this->API->addJS($this->API->URLtemplate() . '/mediaElement/build/jquery.js');

这会在页面加载时产生正确的链接,所以我猜这不会是问题。

在我的文章正文中,我添加了以下代码:

<video id="youtube1" width="640" height="360">
  <source src="http://www.youtube.com/watch?v=nOEw9iiopwI" type="video/youtube" >
</video>

<script>
   jQuery(document).ready(function($) {
      $('#youtube1').mediaelementplayer();
   });

</script>

尽管此代码来自提供的示例,但它会导致前面提到的错误。

对此的任何想法都将不胜感激!

2 个答案:

答案 0 :(得分:1)

我不确定文件是否被正确包含,因为我看不到网站,所以请尝试将 jquery.js mediaelement-and-player.min包括在内。 JS

$document = JFactory::getDocument();
//check to see if jquery is already being loaded
if(!JFactory::getApplication()->get('jquery')){
     JFactory::getApplication()->set('jquery',true);
     $document->addScript(JURI::root() . "templates/template_name/mediaElement/build/jquery.js");
}
$document->addScript(JURI::root() . "templates/template_name/mediaElement/build/mediaelement-and-player.min.js");

不要忘记在上面的代码中更改该路径中的 template_name

答案 1 :(得分:0)

感谢大家的投入。

我找到了问题和解决方案:D。

从head.php中删除此行

$this->API->addJS($this->API->URLtemplate() . '/mediaElement/build/jquery.js');

解决了我的问题。

我想这是因为jQuery已经被我正在使用的模板加载了。

我希望这将使其他人在未来更加安全。

快乐的编码!