web-dev-qa-db-fra.com

Shortcode vidéo - lire automatiquement toutes les vidéos

Comment puis-je lire automatiquement toutes les vidéos ajoutées par shortcode vidéo?
Je ne peux en faire qu'un seul à lecture automatique si un seul attribut est défini sur 1, et les autres à 0, sinon tout est arrêté.

1
Domagoj

J'ai fait cela avec mon propre shortcode vidéo, dans lequel j'ai changé de classe, afin de pouvoir initier le joueur avec $('.my-video-shortcode').mediaelementplayer( {pauseOtherPlayers: false} );
Il fait ce dont j'avais besoin :)

0
Domagoj

J'ai rencontré ce problème en essayant de faire en sorte que les vidéos HTML se comportent comme des GIF. Le lecteur vidéo intégré de WordPress utilise des éléments vidéo HTML, mais ne permet pas la lecture simultanée de vidéos.

Au lieu d'utiliser le lecteur vidéo WordPress par défaut (qui convient mieux à un contenu vidéo plus standard), j'ai choisi d'utiliser manuellement l'élément <video> via un shortcode personnalisé. Pour une compatibilité optimale ( en particulier sur les mobiles ), nous devons également nous assurer que les vidéos sont également muettes.

Après avoir ajouté le code suivant, utilisez simplement:

[videogif mp4="http://path_to_file.mp4"]

Et vous aurez une belle vidéo qui fonctionne. Pour contrôler le style et ajouter des contrôles vidéo HTML (de base), utilisez quelque chose comme:

[videogif mp4="http://path_to_file.mp4" style='width: 80%' controls='1']

Code

Ajoutez à votre functions.php:

// Video gif shortcode
function videogif($atts = [])
{
    // normalize attribute keys, lowercase
    $atts = array_change_key_case((array)$atts, CASE_LOWER);

    // override default attributes with user attributes
    $wporg_atts = shortcode_atts([
            'mp4' => $atts['mp4'],
            'style' => null,
            'controls' => False
        ], $atts);

    // build output
    $o = '';
    $o .= '<video autoplay loop muted ';
    if ($wporg_atts['controls']) $o .= 'controls ';
    $o .= 'class="videogif"';
    if (!is_null($wporg_atts['style'])) $o .= 'style="' . $wporg_atts['style'] . '" ';
    $o .= '><source src="' . $wporg_atts['mp4'] . '" type="video/mp4" />';
    $o .= '<p>Your browser does not support the video element.</p></video>';

    // return output
    return $o;
}
add_shortcode( 'videogif', 'videogif' );

J'utilise également le CSS suivant pour redimensionner et centrer les vidéos par défaut:

/* Center videogif by default */
.videogif {
    width: 100%;
    display:block;
    margin: 0 auto;
}
1
Peter Moran

Vous pouvez essayer d'utiliser le filtre shortcode_atts_video:

add_filter( 'shortcode_atts_video', 'overwrite_video_atts_wpse', 10,3 );

function overwrite_video_atts_wpse( $out, $pairs, $atts )
{
    // force the autoplay video shortcode attribute to ON:
    $out['autoplay'] = 1; 

    // force the autoplay video shortcode attribute to OFF:
    //$out['autoplay'] = 0; 

    return $out;
}

pour écraser le [video]shortcode attributs.

0
birgire

Je me rends compte que ce post est vieux mais la réponse birgire ne fonctionne plus

Au lieu de

$out['autoplay'] = '1';

ce qui est logique, il devrait en fait être

$out['autoplay'] = 'on';

add_filter( 'shortcode_atts_video', 'overwrite_video_atts_wpse', 10,3 );

function overwrite_video_atts_wpse( $out, $pairs, $atts )
{
    // force the autoplay video shortcode attribute to ON:
    $out['autoplay'] = 'on'; 

    // force the autoplay video shortcode attribute to OFF:
    //$out['autoplay'] = 0; 

    return $out;
}
0
tjhole