วิดีโอ HTML5 // ซ่อนการควบคุมโดยสมบูรณ์


85

ฉันจะซ่อนตัวควบคุมวิดีโอ HTML5 ทั้งหมดได้อย่างไร

<video width="300" height="200" controls="false" autoplay="autoplay">
<source src="video/supercoolvideo.mp4" type="video/mp4" />
</video> 

เท็จใช้ไม่ได้ - ทำอย่างไร

ไชโย

คำตอบ:


187

แบบนี้:

<video width="300" height="200" autoplay="autoplay">
  <source src="video/supercoolvideo.mp4" type="video/mp4" />
</video>

controlsเป็นแอตทริบิวต์บูลีน :

หมายเหตุ: ไม่อนุญาตให้ใช้ค่า "true" และ "false" กับแอตทริบิวต์บูลีน ในการแสดงค่าเท็จแอตทริบิวต์จะต้องถูกละเว้นทั้งหมด


วิธีนี้ใช้ได้ผล และฉันเดาว่าคือคำตอบ แม้ว่า; การลบ 'การควบคุม' ภายในมาร์กอัปวิดีโอ HTML5 ฆ่าวิดีโอบน iPad ดังนั้นฉันจึงต้องการวิธีแก้ปัญหาอื่น
fred randall


3
คุณสามารถลองโหลดแท็กรวมถึงแอตทริบิวต์การควบคุมและลบออกหลังจาก pageload ด้วย javascript: var video = document.getElementById ('myvideo'); video.control = เท็จ;
user3072843

44
The values "true" and "false" are not allowed on boolean attributes. พูดคุยเกี่ยวกับความสับสน
totalNotLizards

@jammypeach แอตทริบิวต์เป็นบูลีนเนื่องจากมีสองสถานะ: มีอยู่หรือไม่มี
robertc

47

คุณสามารถซ่อนการควบคุมโดยใช้ CSS Pseudo Selectors เช่น Demo: https://jsfiddle.net/g1rsasa3

//For Firefox we have to handle it in JavaScript 
var vids = $("video"); 
$.each(vids, function(){
       this.controls = false; 
}); 
//Loop though all Video tags and set Controls as false

$("video").click(function() {
  //console.log(this); 
  if (this.paused) {
    this.play();
  } else {
    this.pause();
  }
});
video::-webkit-media-controls {
  display: none;
}

/* Could Use thise as well for Individual Controls */
video::-webkit-media-controls-play-button {}

video::-webkit-media-controls-volume-slider {}

video::-webkit-media-controls-mute-button {}

video::-webkit-media-controls-timeline {}

video::-webkit-media-controls-current-time-display {}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<!-- Hiding HTML5 Video Controls using CSS Pseudo selectors -->

<video width="800" autoplay controls="false">
  <source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4">
</video>


ใช้งานได้ดีสำหรับ Chrome แต่ไม่ใช่ Firefox คุณมีโซลูชันข้ามเบราว์เซอร์หรือไม่?
TinyTiger

ต้องลบออกด้วย CSS หรือ JavaScript เพราะฉันแฮ็คบางอย่างเข้าด้วยกันและไม่สามารถแก้ไขโค้ดแท็กวิดีโอได้โดยตรง
TinyTiger

เฮ้ Benny สำหรับ Mozilla คุณต้องเพิ่ม css ที่มีคำนำหน้าผู้ขายสำหรับพวกเขาทั้งหมดเช่น "-moz-media-controls-play-button" ขอบคุณ
AbidCharlotte49er

1
พยายามเพิ่มคำนำหน้า แต่ไม่ได้ผล นี่คือJSfiddle ที่อัปเดตและนี่คือ CSS ที่ฉันใช้video::-webkit-media-controls, video::-moz-media-controls, video::-o-media-controls, video::-ms-media-controls { display: none !important; }
TinyTiger

1
เป็นไปได้ไหมที่จะแสดง / ซ่อนส่วนควบคุมเหล่านี้แบบไดนามิก ตัวอย่างเช่นใช้วิดีโอ css :: - webkit-media-controls-current-time-display {display: none;} ในขั้นต้นเพื่อซ่อนการควบคุมเวลาปัจจุบัน แต่เมื่อเล่นวิดีโอให้แสดงการควบคุมเวลาปัจจุบันโดยการอัปเดตคลาส css วิดีโอ :: - webkit-media-controls-current-time-display {/ * display: none; * /} หรือใช้คลาส css อื่นซึ่งแสดงเวลาปัจจุบัน ขอบคุณ.
user4848830

37

วิธีแก้ปัญหาง่ายๆคือ - เพียงละเว้นการโต้ตอบของผู้ใช้ :-)

video {
  pointer-events: none;
}

4
สิ่งนี้ใช้ได้ยกเว้นว่าการควบคุมจะแสดงในการโหลดครั้งแรก
m4n0

7

ก่อนอื่นให้ลบแอตทริบิวต์ "การควบคุม" ของวิดีโอออก
สำหรับ iOS เราสามารถซ่อนปุ่มเล่น buildin ของวิดีโอได้โดยเพิ่มตัวเลือกหลอก CSS ต่อไปนี้:

video::-webkit-media-controls-start-playback-button {
    display: none;
}

3

วิธีนี้ใช้ได้ผลในกรณีของฉัน

video=getElementsByTagName('video');
function removeControls(video){
  video.removeAttribute('controls');
}
window.onload=removeControls(video);

1
<video width="320" height="240" autoplay="autoplay">
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>

ฉันเห็นด้วย. วิธีแก้ไขที่ง่ายที่สุดคืออย่าใส่แอตทริบิวต์ขึ้นต้นด้วย
PRMan

0
document.addEventListener("DOMContentLoaded", function() { initialiseMediaPlayer(); }, false);


function initialiseMediaPlayer() {

    mediaPlayer = document.getElementById('media-video');

    mediaPlayer.controls = false;

    mediaPlayer.addEventListener('volumechange', function(e) { 
        // Update the button to be mute/unmute
        if (mediaPlayer.muted) changeButtonType(muteBtn, 'unmute');
        else changeButtonType(muteBtn, 'mute');
    }, false);  
    mediaPlayer.addEventListener('ended', function() { this.pause(); }, false); 
}

<! - สร้างจากข้อความที่สมบูรณ์ <script src = 'media-player.js'> </script> และใส่ในไดเรกทอรีเดียวกัน ->
user6884687
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.