Bug 229485

Summary: HTMLVideoElement.currentTime keeps zero for audio source if HTMLVideoElement.muted is true
Product: WebKit Reporter: Takahiro Aoyagi <taoyagi>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: ahmad.saleem792, eric.carlson, jer.noble, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 14   
Hardware: Unspecified   
OS: Unspecified   

Description Takahiro Aoyagi 2021-08-24 18:11:47 PDT
HTMLVideoElement.currentTime keeps zero for audio source if HTMLVideoElement.muted is true. It can't reproducible in Chrome of Firefox.

Example code:

<script>
const video = document.createElement('video');
video.src = 'your_audio_file.mp3';
video.loop = true;
video.muted = true;
const check = () => {
  setTimeout(check, 1000);
  console.log(video.currentTime);
};
check();
</script>

Another example:

You can also confirm the problem in

https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_audio_all

by replacing the code with the following.

<video muted controls>
<source src="your_audio_file.mp3" type="audio/mpeg">
</video>

You will see zero duration time on the control panel.

OS: macOS Big Sur 11.5.2
Browser: Safari 14.1.2
Comment 1 Radar WebKit Bug Importer 2021-08-31 18:12:19 PDT
<rdar://problem/82605737>
Comment 2 Ahmad Saleem 2023-07-28 04:48:01 PDT
Something like this:

<!DOCTYPE html>
<html>
<body>

<audio controls>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>

<video muted controls>
<source src="horse.mp3" type="audio/mpeg">
</video>

<script>
const video = document.createElement('video');
video.src = 'horse.mp3';
video.loop = true;
video.muted = true;
const check = () => {
  setTimeout(check, 1000);
  console.log(video.currentTime);
};
check();
</script>

</body>
</html>



I tested and I get '0' multiple events in Safari 16.6, STP175 and Chrome Canary 117, or am I testing it wrong?