Mediaelement.js功能不起作用

时间:2014-07-17 作者:sakibmoon

我正在尝试向mediaelement添加新功能。js。这里有一个例子

http://mediaelementjs.com/examples/?name=loop

我现在尝试实现的另一个示例是-

https://stackoverflow.com/questions/17276590/media-element-js-remaining-time-in-video

当我尝试将其添加到html文件中时,所有这些都非常有效。但在wordpress内部,这些脚本似乎没有任何效果。我已经通过wp\\u enqueue\\u scripts hook添加了脚本。此外,如果我尝试添加功能,视频播放器就会崩溃。这是我的代码:

define( \'SP_PLUGIN_URL\', plugin_dir_url( __FILE__ ) );
Class test_me{
    function __construct()
    {                   
        add_action(\'wp_enqueue_scripts\', array(&$this, \'script_enquer\') );
    }

    function script_enquer()
    {
         wp_register_script(\'time_left\', SP_PLUGIN_URL . \'js/time-left.js\', array(\'jquery\', \'mediaelement\', \'wp-mediaelement\'), \'1.0\' );
         wp_enqueue_script( \'time_left\' );
         wp_register_script( \'add_feature\', SP_PLUGIN_URL . \'js/add_feature.js\', false, \'1.0\', true);
         wp_enqueue_script( \'add_feature\');
    }
}
$test = new test_me();
以下是time-left.js

(function ($) {
// loop toggle
MediaElementPlayer.prototype.buildtimeleft = function (player, controls, layers, media){
    var t = this;

    $(\'<div class="mejs-time">\' +
        \'<span class="mejs-timeLeft">&#45;\' + // use &minus; for a wider sign
        (t.options.duration > 0 ?
            mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25) :
            ((player.options.alwaysShowHours ? \'00:\' : \'\') + (player.options.showTimecodeFrameCount ? \'00:00:00\' : \'00:00\'))
            ) +
        \'</span>\' +
        \'</div>\')
        // append it to the toolbar
        .appendTo(controls);

    //attach element we want to update to t (this) for easier access
    t.timeLeft = t.controls.find(\'.mejs-timeLeft\');

    // add a timeupdate event
    media.addEventListener(\'timeupdate\', function () {
        if (t.timeLeft && t.media.duration) {
            //replace with whatever time you want to insert here
            t.timeLeft.html(\'&#45;\' + mejs.Utility.secondsToTimeCode(t.media.duration - t.media.currentTime, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25));
        }
    }, false);
}
})(jQuery);

add_feature.js

$(\'video\').mediaelementplayer({
    features[\'playpause\',\'progress\',\'current\',\'duration\',\'timeleft\',\'tracks\',\'volume\',\'fullscren\']
});
但视频现在还没有播放。添加功能似乎会让玩家崩溃。我还尝试了取消对mediaelement的注册并手动将其排队。但同样的结果。

我就是想不出问题所在。

1 个回复
最合适的回答,由SO网友:sakibmoon 整理而成

我找到了解决办法。

您必须取消regsiter并添加wp-mediaelement 脚本以添加功能。

结束

相关推荐

Media Manager(3.5版):如何在创建媒体框时显示空的媒体库?

有没有办法确保“媒体库”选项卡在我开始在“上载文件”选项卡中上载一些图像之前不会显示任何图像?我正在创建wp。具有以下代码的媒体框:var myframe = wp.media({ title : \'Bla Bla\', frame : \'select\', library: { //query : false, // not working type : \'image\', },&#x