admin管理员组

文章数量:1277523

im trying to add SkipBack and JumpForward Plugin of mediaelement.js into my wordpress [video] tag controlbar.

so far i have added those to plugin js in a js file (videoplayerjs) like this :

/*!
 * MediaElement.js - Jump Forward Plugin
 * /
 *
 * Wrapper that mimics native HTML5 MediaElement (audio and video)
 * using a variety of technologies (pure JavaScript, Flash, iframe)
 *
 * Copyright 2010-2017, John Dyer (/)
 * License: MIT
 *
 */
!function i(a,u,s){function p(t,r){if(!u[t]){if(!a[t]){var e="function"==typeof require&&require;if(!r&&e)return e(t,!0);if(m)return m(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var o=u[t]={exports:{}};a[t][0].call(o.exports,function(r){return p(a[t][1][r]||r)},o,o.exports,i,a,u,s)}return u[t].exports}for(var m="function"==typeof require&&require,r=0;r<s.length;r++)p(s[r]);return p}({1:[function(r,t,e){"use strict";mejs.i18n.en["mejs.time-jump-forward"]=["Jump forward 1 second","Jump forward %1 seconds"],Object.assign(mejs.MepDefaults,{jumpForwardInterval:30,jumpForwardText:null}),Object.assign(MediaElementPlayer.prototype,{buildjumpforward:function(r,t,e,n){var o=this,i=mejs.i18n.t("mejs.time-jump-forward",o.options.jumpForwardInterval),a=mejs.Utils.isString(o.options.jumpForwardText)?o.options.jumpForwardText.replace("%1",o.options.jumpForwardInterval):i,u=document.createElement("div");u.className=o.options.classPrefix+"button "+o.options.classPrefix+"jump-forward-button",u.innerHTML='<button type="button" aria-controls="'+o.id+'" title="'+a+'" aria-label="'+a+'" tabindex="0">'+o.options.jumpForwardInterval+"</button>",o.addControlElement(u,"jumpforward"),u.addEventListener("click",function(){var r=isNaN(n.duration)?o.options.jumpForwardInterval:n.duration;if(r){var t=n.currentTime===1/0?0:n.currentTime;n.setCurrentTime(Math.min(t+o.options.jumpForwardInterval,r)),this.querySelector("button").blur()}})}})},{}]},{},[1]);



/*!
 * MediaElement.js - Skip Back Plugin
 * /
 *
 * Wrapper that mimics native HTML5 MediaElement (audio and video)
 * using a variety of technologies (pure JavaScript, Flash, iframe)
 *
 * Copyright 2010-2017, John Dyer (/)
 * License: MIT
 *
 */
!function s(o,a,c){function p(e,t){if(!a[e]){if(!o[e]){var i="function"==typeof require&&require;if(!t&&i)return i(e,!0);if(u)return u(e,!0);var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}var r=a[e]={exports:{}};o[e][0].call(r.exports,function(t){return p(o[e][1][t]||t)},r,r.exports,s,o,a,c)}return a[e].exports}for(var u="function"==typeof require&&require,t=0;t<c.length;t++)p(c[t]);return p}({1:[function(t,e,i){"use strict";mejs.i18n.en["mejs.time-skip-back"]=["Skip back 1 second","Skip back %1 seconds"],Object.assign(mejs.MepDefaults,{skipBackInterval:30,skipBackText:null}),Object.assign(MediaElementPlayer.prototype,{buildskipback:function(t,e,i,n){var r=this,s=mejs.i18n.t("mejs.time-skip-back",r.options.skipBackInterval),o=mejs.Utils.isString(r.options.skipBackText)?r.options.skipBackText.replace("%1",r.options.skipBackInterval):s,a=document.createElement("div");a.className=r.options.classPrefix+"button "+r.options.classPrefix+"skip-back-button",a.innerHTML='<button type="button" aria-controls="'+r.id+'" title="'+o+'" aria-label="'+o+'" tabindex="0">'+r.options.skipBackInterval+"</button>",r.addControlElement(a,"skipback"),a.addEventListener("click",function(){if(isNaN(n.duration)?r.options.skipBackInterval:n.duration){var t=n.currentTime===1/0?0:n.currentTime;n.setCurrentTime(Math.max(t-r.options.skipBackInterval,0)),this.querySelector("button").blur()}})}})},{}]},{},[1]);

and added the script to my wp head like this on functions.php :

function site_scripts() {
    
    wp_enqueue_style( 'wp-mediaelement' );
    
    wp_enqueue_script('wp-mediaelement');
    
    wp_enqueue_script( 'videoplayerjs', get_template_directory_uri() . '/js/videoplayer.min.js', array( 'jquery', 'wp-mediaelement'  ), _S_VERSION );
    

}
add_action( 'wp_enqueue_scripts', 'site_scripts' );

and finally i've changed the mediaelementplayer features like this on my theme main js file that loads on all pages:

$(document).ready(function() {
    
    if($.fn.mediaelementplayer) {
        $('video').mediaelementplayer({
            startVolume: 1,
            features : ['playpause','current','progress','duration','tracks','volume','fullscreen','skipback','jumpforward']            
        });
    }
        
});

but i still don't have any SkipBack or JumpForward button in my video player controlbar! what am i doing wrong ? can any body give me a hint on this ?

im trying to add SkipBack and JumpForward Plugin of mediaelement.js into my wordpress [video] tag controlbar.

so far i have added those to plugin js in a js file (videoplayerjs) like this :

/*!
 * MediaElement.js - Jump Forward Plugin
 * http://www.mediaelementjs/
 *
 * Wrapper that mimics native HTML5 MediaElement (audio and video)
 * using a variety of technologies (pure JavaScript, Flash, iframe)
 *
 * Copyright 2010-2017, John Dyer (http://j.hn/)
 * License: MIT
 *
 */
!function i(a,u,s){function p(t,r){if(!u[t]){if(!a[t]){var e="function"==typeof require&&require;if(!r&&e)return e(t,!0);if(m)return m(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var o=u[t]={exports:{}};a[t][0].call(o.exports,function(r){return p(a[t][1][r]||r)},o,o.exports,i,a,u,s)}return u[t].exports}for(var m="function"==typeof require&&require,r=0;r<s.length;r++)p(s[r]);return p}({1:[function(r,t,e){"use strict";mejs.i18n.en["mejs.time-jump-forward"]=["Jump forward 1 second","Jump forward %1 seconds"],Object.assign(mejs.MepDefaults,{jumpForwardInterval:30,jumpForwardText:null}),Object.assign(MediaElementPlayer.prototype,{buildjumpforward:function(r,t,e,n){var o=this,i=mejs.i18n.t("mejs.time-jump-forward",o.options.jumpForwardInterval),a=mejs.Utils.isString(o.options.jumpForwardText)?o.options.jumpForwardText.replace("%1",o.options.jumpForwardInterval):i,u=document.createElement("div");u.className=o.options.classPrefix+"button "+o.options.classPrefix+"jump-forward-button",u.innerHTML='<button type="button" aria-controls="'+o.id+'" title="'+a+'" aria-label="'+a+'" tabindex="0">'+o.options.jumpForwardInterval+"</button>",o.addControlElement(u,"jumpforward"),u.addEventListener("click",function(){var r=isNaN(n.duration)?o.options.jumpForwardInterval:n.duration;if(r){var t=n.currentTime===1/0?0:n.currentTime;n.setCurrentTime(Math.min(t+o.options.jumpForwardInterval,r)),this.querySelector("button").blur()}})}})},{}]},{},[1]);



/*!
 * MediaElement.js - Skip Back Plugin
 * http://www.mediaelementjs/
 *
 * Wrapper that mimics native HTML5 MediaElement (audio and video)
 * using a variety of technologies (pure JavaScript, Flash, iframe)
 *
 * Copyright 2010-2017, John Dyer (http://j.hn/)
 * License: MIT
 *
 */
!function s(o,a,c){function p(e,t){if(!a[e]){if(!o[e]){var i="function"==typeof require&&require;if(!t&&i)return i(e,!0);if(u)return u(e,!0);var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}var r=a[e]={exports:{}};o[e][0].call(r.exports,function(t){return p(o[e][1][t]||t)},r,r.exports,s,o,a,c)}return a[e].exports}for(var u="function"==typeof require&&require,t=0;t<c.length;t++)p(c[t]);return p}({1:[function(t,e,i){"use strict";mejs.i18n.en["mejs.time-skip-back"]=["Skip back 1 second","Skip back %1 seconds"],Object.assign(mejs.MepDefaults,{skipBackInterval:30,skipBackText:null}),Object.assign(MediaElementPlayer.prototype,{buildskipback:function(t,e,i,n){var r=this,s=mejs.i18n.t("mejs.time-skip-back",r.options.skipBackInterval),o=mejs.Utils.isString(r.options.skipBackText)?r.options.skipBackText.replace("%1",r.options.skipBackInterval):s,a=document.createElement("div");a.className=r.options.classPrefix+"button "+r.options.classPrefix+"skip-back-button",a.innerHTML='<button type="button" aria-controls="'+r.id+'" title="'+o+'" aria-label="'+o+'" tabindex="0">'+r.options.skipBackInterval+"</button>",r.addControlElement(a,"skipback"),a.addEventListener("click",function(){if(isNaN(n.duration)?r.options.skipBackInterval:n.duration){var t=n.currentTime===1/0?0:n.currentTime;n.setCurrentTime(Math.max(t-r.options.skipBackInterval,0)),this.querySelector("button").blur()}})}})},{}]},{},[1]);

and added the script to my wp head like this on functions.php :

function site_scripts() {
    
    wp_enqueue_style( 'wp-mediaelement' );
    
    wp_enqueue_script('wp-mediaelement');
    
    wp_enqueue_script( 'videoplayerjs', get_template_directory_uri() . '/js/videoplayer.min.js', array( 'jquery', 'wp-mediaelement'  ), _S_VERSION );
    

}
add_action( 'wp_enqueue_scripts', 'site_scripts' );

and finally i've changed the mediaelementplayer features like this on my theme main js file that loads on all pages:

$(document).ready(function() {
    
    if($.fn.mediaelementplayer) {
        $('video').mediaelementplayer({
            startVolume: 1,
            features : ['playpause','current','progress','duration','tracks','volume','fullscreen','skipback','jumpforward']            
        });
    }
        
});

but i still don't have any SkipBack or JumpForward button in my video player controlbar! what am i doing wrong ? can any body give me a hint on this ?

Share Improve this question asked Nov 21, 2020 at 10:08 ErfanMHDErfanMHD 112 bronze badges 3
  • Did you achieve anything on the issue? I also want to know how to add plugins. Looking forward to your reply... – Axel Commented Jan 26, 2021 at 12:47
  • Nope, seems like nobody even on MediaElements.js's GitHub is caring... – ErfanMHD Commented Jan 27, 2021 at 19:34
  • Hmm. It's a pitty! Thx for reply. Maybe I will try out later again. If so I will inform you as well... – Axel Commented Jan 28, 2021 at 8:11
Add a comment  | 

1 Answer 1

Reset to default 1

You can alter the mediaelement.js feature-set using the mejs_settings hook. Settings Overview

Defaults are: playpause, current, progress, duration, tracks, volume, fullscreen.

Add the plugin to the array as needed to extend the features.

add_filter('mejs_settings', function ($settings) {
$settings['features'] = array(...,'jumpforward');
    return $settings;
});

Make sure to enqueue the plugin itself:

wp_enqueue_script( 'mejs-plugin-name', 'path_to_plugin_file', array('wp-mediaelement'), null, true ); 

本文标签: phpadd mediaelementjs plugins into WordPress video player control bar