*
* Examples: modal closes, shortcode properties are removed, etc.
*/
- unsetPlayer : function() {
- if ( this.player ) {
+ unsetPlayers : function() {
+ if ( this.players && this.players.length ) {
wp.media.mixin.pauseAllPlayers();
- wp.media.mixin.removePlayer( this.player );
- this.player = false;
+ _.each( this.players, function (player) {
+ wp.media.mixin.removePlayer( player );
+ } );
+ this.players = [];
}
}
};
media.view.MediaDetails = media.view.Settings.AttachmentDisplay.extend({
initialize: function() {
_.bindAll(this, 'success');
-
- this.listenTo( this.controller, 'close', media.mixin.unsetPlayer );
+ this.players = [];
+ this.listenTo( this.controller, 'close', media.mixin.unsetPlayers );
this.on( 'ready', this.setPlayer );
- this.on( 'media:setting:remove', media.mixin.unsetPlayer, this );
+ this.on( 'media:setting:remove', media.mixin.unsetPlayers, this );
this.on( 'media:setting:remove', this.render );
this.on( 'media:setting:remove', this.setPlayer );
this.events = _.extend( this.events, {
* @global MediaElementPlayer
*/
setPlayer : function() {
- if ( ! this.player && this.media ) {
- this.player = new MediaElementPlayer( this.media, this.settings );
+ if ( ! this.players.length && this.media ) {
+ this.players.push( new MediaElementPlayer( this.media, this.settings ) );
}
},