2016-12-13 3 views
105

Я получаю эту кнопку загрузки с <video> тегов в Chrome 55, но не на Chrome 54: enter image description hereВ Chrome 55, предотвратить показ кнопку Загрузить для HTML 5 видео

Как я могу удалить это так, что никто не видит кнопка загрузки в Chrome 55?

Я использовал <video> тег, чтобы вставить это видео на мою веб-страницу. Итак, я хочу, чтобы какой-то код удалял этот параметр загрузки.

Вот мой текущий код:

<video width="512" height="380" controls> 
    <source data-src="mov_bbb.ogg" type="video/mp4"> 
</video> 
+0

@Makyen я не могу найти решение в интернете. это похоже на что-то новое –

+0

@Makyen проверить эту ссылку, если вы используете chrome 55, вы увидите ее http://www.w3schools.com/html/html5_video.asp –

+0

@Makyen да, я не хочу, чтобы это показывало –

ответ

127

Это решение (от this post)

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

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

video::-webkit-media-controls-panel { 
    width: calc(100% + 30px); /* Adjust as needed */ 
} 
+1

Это может быть решение, но похоже, что это может изменить больше вещей, чем ожидалось (например, в Safari). См. «Официальный» отказ от ответа Chrome: https://productforums.google.com/forum/#!topic/chrome/1WXSi6BzK9M (надеюсь, что-то скажут в какой-то момент ...) –

+0

Вышеприведенный код работает точно так же для аудио-элемента и меньше кода, чем ответ ниже. Хорошая работа! –

+0

Отлично! Только то, что мне нужно для режима киоска Chrome. –

10

Эта кнопка загрузки на Chrome можно скрыть при HTML5 Audio используется.

#aPlayer > audio { width: 100% } 
 
     /* Chrome 29+ */ 
 
@media screen and (-webkit-min-device-pixel-ratio:0) 
 
    and (min-resolution:.001dpcm) { 
 
     /* HIDE DOWNLOAD AUDIO BUTTON */ 
 
    #aPlayer { 
 
      overflow: hidden;width: 390px; 
 
     } 
 

 
    #aPlayer > audio { width: 420px; } 
 
} 
 

 
/* Chrome 22-28 */ 
 
@media screen and(-webkit-min-device-pixel-ratio:0) { 
 
    
 
     #aPlayer { 
 
      overflow: hidden;width: 390px; 
 
     } 
 

 
    #aPlayer > audio { width: 420px; } 
 
}
<div id="aPlayer"> 
 
<audio autoplay="autoplay" controls="controls"> 
 
    <source src="http://www.stephaniequinn.com/Music/Commercial%20DEMO%20-%2012.mp3" type="audio/mpeg" /> 
 
</audio> 
 
</div>

Click here to see the screenshot

+0

отличный ответ ... –

+0

Вопрос был о «видео», и это «аудио». Близко, но на самом деле нужно уделить особое внимание этому или лучше, просто измените его. Кроме того, этот ответ требует, чтобы пользователь обернул аудио в отдельный div или сделал неудобное обходное решение, почему бы просто не заставить его работать для всего аудио и сделать его намного проще в использовании? – PandaWood

1

Что касается текущей версии Chrome (56), вы не можете удалить его еще. Решение, предоставленное в других сообщениях, приводит к переполнению некоторой части видео.

Я нашел другое решение - вы можете сделать предыдущую кнопку, чтобы перекрывать кнопку загрузки и просто покрыть ее, используя эту технику:

video::-webkit-media-controls-fullscreen-button { 
    margin-right: -48px; 
    z-index: 10; 
    position: relative; 
    background: #fafafa; 
    background-image: url(https://image.flaticon.com/icons/svg/151/151926.svg); 
    background-size: 35%; 
    background-position: 50% 50%; 
    background-repeat: no-repeat; 
} 

Пример: https://jsfiddle.net/dk4q6hh2/

PS Вы могли бы хотеть для настройки значка, поскольку это, например, только.

+0

В моей настройке ваше решение делает перекрытие панели управления, а в текущей версии Chrome (также 56) решение от первого ответа работает безупречно без перекрытия видео. – vzr

+0

Спасибо за отзыв. Я тестировал его в Chrome 56 на Windows, Mac и Android, и он отлично работает. Для экранов с более высокой плотностью может потребоваться небольшая настройка, поскольку размер мобильного телефона составляет 48 пикселей, а на рабочем столе - 32 пикселя. – pwkc

-1

Я решил проблему, закрыв кнопку загрузки аудиоконтроллера прозрачным div, который изменяет символ курсора мыши на «недопустимый».

Разблокирует активацию кнопки загрузки.

Высота: 50px, ширина: 35px, левая: (document-right -60), сверху: (то же, что и аудиоконтроллер).

Вы должны установить стиль z-индекса div над z-индексом аудио-контроллера.

См. sapplic.com/jive66 для примера, который работает для chrome на win7 и на win8.

+0

Почему бы не просто сделать свой div белым, чтобы он спрятал значок загрузки. –

+0

Я выбрал «недопустимый» курсор мыши намеренно, чтобы указать, что загрузка запрещена. Простой белый div должен работать одинаково. – user2707695

0

Может быть лучшим способом использовать «скачать» кнопку, чтобы использовать игроков JavaScript, такие как Videojs (http://docs.videojs.com/) или MediaElement.js (http://www.mediaelementjs.com/)

Они не имеют кнопку загрузки по умолчанию, как правило, и кроме того, позволяют настраивать видимые кнопки управления проигрывателя.

162

Google добавил новую функцию, поскольку последний ответ был отправлен здесь. Теперь вы можете добавить атрибут controlList, как показано здесь:

<video width="512" height="380" controls controlsList="nodownload"> 
    <source data-src="mov_bbb.ogg" type="video/mp4"> 
</video> 

Вы можете найти все опции ControlList атрибута здесь:

https://developers.google.com/web/updates/2017/03/chrome-58-media-updates#controlslist

+2

Замечательно, что это было действительно необходимо –

+0

Это должен быть признанный/лучший ответ. Простое и законное решение. – Junaid

+2

Атрибут 'controlsList' будет доступен в Chrome 58. На данный момент Chrome 58 еще не выпущен _completely_. –

1

Эй, я нашел постоянное решение, которое должно работать в каждом дело!

Для нормальной веб-программирования

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

HTML5 видео, которое преднагрузка на ложном

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

$ undevinded? -> Отладка modus!

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

HTML5 видео, которое преднагрузка на ложном

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

Позволь мне знать, если это поможет вам!

25

Начиная с Chrome58 теперь вы можете использовать controlsList, чтобы удалить элементы управления, которые вы не хотите показывать. Это доступно для тегов <audio> и <video>.

Если вы хотите удалить кнопку загрузки в блоке управления сделать это:

<audio controls controlsList="nodownload"> 
+1

Пользователи могут щелкнуть правой кнопкой мыши по ссылке аудиофайла, чтобы загрузить аудиофайл в любом случае. И поскольку скрытая кнопка и скрытый URL кажутся синонимами, было бы полезно, если бы 'controlList =" nodownload "' также скрывал URL-адреса источника аудио. Но сдерживающий эффект этого решения остается. – noobninja

+1

@noobninja - Вы правы, это решение не предотвращает загрузку, только удаляет загрузку с элементов управления. Предотвращение загрузки вместе - это другая тема. Я считаю, что есть вопросы, относящиеся к этому, например [this] (https://stackoverflow.com/questions/9756837/prevent-html5-video-from-being-downloaded-right-click-saved/9756909#9756909) например. –

+0

@noobninja Как хром сможет скрыть исходный URL ваших медиафайлов, если вы передадите их в качестве внешних источников? Хром не является задачей предоставить какой-либо DRM. Вы не можете скрыть источник аудиофайла, так как вы не можете скрыть источник файла изображения в теге ''. Если вы хотите защитить свой контент, вам понадобится какое-то настраиваемое решение, а не простой аудио-элемент HTML5 с простым аудио-файлом, который подается с сервера. – trixn