2013-01-01 9 views
15

Titolo praticamente dice tutto. Ho un video che inizia automaticamente a giocare quando arrivano sulla pagina.HTML5 Video in sordina ma stilly giocando

Nel codice HTML ho messo muto = "disattivato". E qui arriva la parte strana. Quando si guardano i controlli, questo è chiaramente disattivato, ma la musica è ancora in riproduzione e può essere ascoltata. Anche quando ho guardato l'esempio di HTML5 Video su W3Schools, la musica viene riprodotta mentre l'audio è disattivato.

C'è un modo, per esempio con jQuery di bypassare questo? Ho una linea jQuery che rimanda il muto al video ma che non ha alcun effetto.

Ecco il codice HTML è uso:

<video id="video" width="640px" height="350px" autoplay="autoplay" loop="loop" controls="controls" muted="muted"> 
      <source src="intouchables.f4v" type="video/mp4"> 
      Your browser does not support the video tag. 
     </video> 

Spero che mi può dare una mano. La linea jQuery è la seguente:

$ ("video"). Prop ('muted', true);

Grazie in anticipo.

risposta

18

Non sono completamente sicuro del motivo per cui l'attributo muted non funziona correttamente quando è definito nel tag video. Tuttavia, questo è quello che puoi fare:

In primo luogo, rimuovere l'attributo muted="muted" dal tag video. Mantenerlo semplicemente come:

<video id="video" width="640px" height="350px" autoplay="autoplay" loop="loop" controls="controls"> 
    <source src="intouchables.f4v" type="video/mp4"> 
    Your browser does not support the video tag. 
</video> 

Ora, definire una funzione che al caricamento della pagina, disattiva il video.

window.onload = function() { 
    var element = document.getElementById('video'); 
    element.muted = "muted"; 
} 

Ho verificato questo e funziona.

+0

sei il mio eroe, posso verificare che funzioni. Proverò a segnalare il bug. Grazie mille! –

+9

Suggerisco di usare 'element.muted = true;' poiché si tratta di una proprietà booleana - https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement –

3
<video preload= "true" autoplay = "autoplay" loop = "loop" muted> 
    <source src = "video/Real-Estate.mp4" type = "video/mp4"> 
</video> 
1

Per disattivare tramite HTML5 direttamente invece di jQuery, è anche possibile utilizzare volume="0" all'interno del tag video, vale a dire:

<video preload="true" autoplay="" volume="0" poster="img/example.jpg"> 
+2

Tried 'volume =" 0 " 'in FF45 e non ha funzionato. –

3

assomiglia a questo sordina ha smesso di funzionare in cromo 64. funziona ancora a 63.

+0

Inoltre, confermo che il tag video "disattivato" è rotto in chrome 64. soluzione: sembra che funzioni ancora se l'elemento video è posizionato su una pagina che è stata sottoposta a rendering sul caricamento iniziale della pagina. Puoi anche applicare il silenziamento all'elemento direttamente usando JavaScript. vedere: https://stackoverflow.com/questions/48629652/chrome-64-update-muted-tag-no-longer-working-in-video/48651746#48651746 – Ariella