Bouton de téléchargement désactivé pour Google Chrome?

Google Chrome est maintenant Livraison avec un bouton de téléchargement pour les vidéos qui ne sont que des vidéos intégrées (i.e. pas MSE):

Canary Controls

J'ai du mal à trouver de la documentation pour la mise en œuvre de la balise <video> par Chrome. Est - ce que quelqu'un sait s'il y a un moyen - à moins de désactiver les "contrôles" et de créer vos propres contrôles de lecteur vidéo-de désactiver cette fonctionnalité?

je me rends compte que si c'est montrer, c'est déjà facile à télécharger la vidéo, je veux juste de désactiver la fonctionnalité d'apparaître dans le cadre des contrôles.

Merci!

42
demandé sur ranvel 2016-09-20 23:02:21

9 réponses

ou vous pouvez simplement ajouter nodownload dans controllslist

<video width="512" height="380" controls controlsList="nodownload">
    <source data-src="mov_bbb.ogg" type="video/mp4">
</video>
64
répondu Elyor 2017-04-24 15:48:51

vous pouvez inspecter les commandes du Lecteur vidéo Chrome natif en activant le DOM shadow dans Settings|Preferences -> Elements -> Show user agent shadow DOM

shadow dom

après cela, vous pouvez inspecter les boutons des joueurs.

Player DOM

maintenant le problème est que le bouton de téléchargement ne peut pas être accédé via CSS pour une raison quelconque.

video::-internal-media-controls-download-button {
    display:none;
}

ne marchera pas. Même en sélectionnant le bouton Précédent et en ciblant son voisin en utilisant + ou ~ ne fonctionnera pas.

le seul moyen que nous ayons trouvé jusqu'à présent était de pousser le bouton hors de la zone visible en donnant au panneau de commande une plus grande largeur et en faisant de l'enceinte overflow: hidden

video::-webkit-media-controls {
    overflow: hidden !important
}
video::-webkit-media-controls-enclosure {
    width: calc(100% + 32px);
    margin-left: auto;
}

j'espère que google va résoudre ce problème bientôt parce que la plupart des fournisseurs de contenu ne sera pas heureux avec cela...

45
répondu Demnogonis 2017-01-21 01:01:59

demmongonis solution ne fonctionne, mais être conscient qu'il peut conduire à des résultats indésirables.

Android / Chrome parfois, dépend dans la vidéo je suppose et d'autres facteurs, ajoute des boutons à la droite du téléchargement-bouton. i.e. le bouton de moulage (il n'y a aucun moyen de le sélectionner). Il rendra le bouton de téléchargement pour rester visible et le dernier bouton pour se cacher (casting-button)

casting button in Android 4.4 Chrome 55

mise à Jour

il est maintenant possible de cacher le bouton de téléchargement en utilisant l'attribut controllslist:

<video controlsList="nodownload" ... />
14
répondu jonalvarezz 2017-11-23 11:28:35

Oui, c'est possible maintenant, au moins au moment de l'écriture, vous pouvez utiliser l'attribut controlsList :

<video controls controlsList="nodownload">
  <source data-src="movie.mp4">
</video>

il semble que cela ait été introduit dans Chrome 58, et la documentation pour cela se trouve ici: https://developers.google.com/web/updates/2017/03/chrome-58-media-updates#controlslist

les développeurs peuvent maintenant personnaliser les contrôles médias tels que le téléchargement, fullscreen et remoteplayback bouton. Utilisation en HTML:

<video controls controlsList="nofullscreen nodownload noremote foobar"></video>

il y a même une page échantillon officielle: https://googlechrome.github.io/samples/media/controlslist.html

8
répondu bg17aw 2017-05-22 09:37:24

ajouter ce code css.

  audio::-internal-media-controls-download-button {
    display:none;
}

audio::-webkit-media-controls-enclosure {
    overflow:hidden;
}

audio::-webkit-media-controls-panel {
    width: calc(100% + 30px); /* Adjust as needed */
}
1
répondu Toufiq 2017-08-21 11:08:46

en plus des réponses ci-dessus, vous devez ajouter le code suivant pour désactiver le menu contextuel:

de l'index.html: (dans le monde)

<body oncontextmenu="return false;">

ou vous pouvez désactiver le menu contextuel pour certains élément :

element.oncontextmenu = function (e) {
    e.preventDefault();
};
1
répondu Ukr 2017-11-28 14:19:17

La réponse ci-dessus offre une bonne solution. Cependant, lorsque je travaillais sur ce sujet dans mon projet, il y avait deux problèmes avec elle.

  1. le téléchargement se produit (comme si le bouton Télécharger avait été pressé) lorsque la marge droite du bouton fullscreen est touchée sur Android (mobile ou tablette). L'application z-index n'ont pas le fixer.

  2. en raison de débordement: caché, le bouton de téléchargement est invisible mais encore il existe à droite du bouton fullscreen. Cela signifie que lorsque vous appuyez sur "tab" plusieurs fois après avoir cliqué sur un bouton ou une barre de contrôle sur PC, vous pouvez toujours atteindre le bouton de téléchargement.

en outre, soyez prudent -- certains appareils de faible largeur (par exemple les téléphones mobiles) sont assez petits pour cacher la barre de recherche. Il faudrait beaucoup plus de pixels pour cacher le bouton de téléchargement.

J'espère que Google fournit l'option de régler cette ASAP.

0
répondu Meow Kim 2017-05-25 04:24:11

Hey j'ai trouvé une solution permanente qui devrait fonctionner dans tous les cas!

normal création web

<script type="text/javascript"> 
$("video").each(function(){jQuery(this).append('controlsList="nodownload"')}); 
</script>

HTML5 vidéos qui a préchargé sur false

$( document ).ready(function() {
  $("video").each(function(){
    $(this).attr('controlsList','nodownload');
    $(this).load();
  });
});

$ non évalué? --> Debug mode!

<script type="text/javascript"> 
jQuery("video").each(function(){jQuery(this).append('controlsList="nodownload"')}); 
</script>

HTML5 vidéos qui a préchargé sur false

jQuery( document ).ready(function() {
  jQuery("video").each(function(){
    jQuery(this).attr('controlsList','nodownload');
    jQuery(this).load();
  });
});

dites-moi si ça vous a aidé!

0
répondu Chris Kroon 2017-06-03 10:46:37

pour rester simple.. Vous devez ajouter un attribut appelé controllslist (LOWERCASE, directement après les contrôles) et vous devez définir sa valeur à ="nodownload". En outre, assurez-vous que votre fichier src(type) et la valeur de votre type d'attribut correspondent, contrairement à certains des exemples ci-dessus; mon lien est vers un fichier nommé 'sunrise over water.mp4 ' sur Google Drive. Comment je fais cela ressemble à ceci:

<video src="https://drive.google.com/open?id=0B1CDu1eNPJqDVEQxMzZUV1dURjg" title="sunrise over water" width="420" height="300" controls controlslist="nodownload" type="video/mp4"> Video Not Supported By Your Browser... </video>

ou

<video width="440" height="320" title="sunrise over water" controls controlslist="nodownload"> <source src="https://drive.google.com/open?id=0B1CDu1eNPJqDVEQxMzZUV1dURjg" type="video/mp4"> Video Could Not Be Played In Your Browser... Sorry. </video>

0
répondu Sean Tank Garvey 2017-07-13 18:33:47