javascript - Angularjs。如何获取全局 jquery 对象和其他(jQuery 插件/Angularjs 东西!)?

标签 javascript jquery angularjs youtube mediaelement.js

我想使用 http://mediaelementjs.com/在我的应用程序中播放多个 youtube 视频。所以我创建了一个加载 mediaelementjs 的指令:

指令

.directive('mediaelement', function() {
    return {
        link: function(scope, element, attrs) {
            $(element).mediaelementplayer();
        }
    }
})

我有这样的播放器:

播放器

<video id="player" controls width="374px" height="301px" type="video/youtube" src="{{currentMusic}}" youtube>

因为它是一个 youtube 视频 medialementjs 使用 flash。

第一个问题

currentMusic 仅在稍后初始化,当我更改 currentMusic 时,DOM 已正确修改,但 mediaelementjs 不更改源,当我单击播放时没有播放,因为源在 flash 对象上仍然是 {{currentMusic}}(未绑定(bind))

但如果我直接将 youtube 源放在视频 src 中,一切都可以。

如果我在加载应用程序时在 currentMusic 中添加一个值,然后我等待 2 秒来创建 mediaelementjs 对象,一切都很好!

为什么?

第二个问题

如果我在播放视频后删除我的第一个 mediaelementjs 对象,然后我更改 currentMusic,然后我创建一个新的 medialementjs 对象,源已正确更改。

所以我必须使用 setSrc()

所以当我点击我应用程序其他部分的链接时,我想更改视频源。 但是我怎样才能得到我的 mediaelement 对象呢?

那么如何使用 angularjs 和 mediaelementjs 制作一个播放 youtube 视频的列表?

我真的希望我是清楚的...我花了两天时间试图理解正在发生的事情并使事情正常进行,但我失败了...

来源: How do I get mediaelement.js player state (paused, volume, etc.)?

http://johndyer.name/html5-video-wrapper-for-youtube-and-vimeo-api-mediaelement-js/

media player object from directive

最佳答案

$observe 中放入你的指令:

attrs.$observe('src', function(src) {
      $(element).mediaelementplayer();
 });

所以每次更改 SRC 后你都会初始化你的插件

第二个问题有不同的解决方案,例如使用范围/服务:

scope.mediaObject = $(element).mediaelementplayer();

更新:

我已经阅读了 MediaElementPlayer 的文档,所以应该非常简单:

attrs.$observe('src', function(src) {
    $(element).mediaelementplayer().setSrc(src);
});

关于javascript - Angularjs。如何获取全局 jquery 对象和其他(jQuery 插件/Angularjs 东西!)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21829800/

相关文章:

javascript - 如果 JQuery 中的 $.getJSON 无法使用德语,则将维基百科文本保存为英语

c# - 如何在 ASP.NET MVC 3 中限制文件上传为 JPG、PNG 和 GIF

javascript - 是否有 JSONP 图片搜索 API 可让用户在我的网站上搜索图片?

AngularJS - 使用 $http 时 Controller 不从服务获取数据

javascript - AngularJs 未知提供商错误

javascript - keyup 事件上的 preventDefault() 不起作用

javascript - 可以这样调用 prompt() 吗?

javascript - Promise.all 然后 (js)

javascript - 如何修改iframe的src

javascript - 从 Maya 场景到 WebGL 动画,从哪里开始?