Created attachment 364363 [details] Screenshot of BBC media player It's not too uncommon for videos to have no audio track. It would be really nice if the video controls could indicate this, so that users know why there's no sound ("is something broken? is my volume too low? wtf?"). Unfortunately this info isn't available through the media element API, so this would need to be added to the HTML5 spec. The simplest way to expose this would be as |readonly boolean hasAudio|. Is the media backend capable of determining this this?
Yes we can determine if it has no audio track at the beginning. If we eventually support chained oggs then it may be possible for a track to appear as we download so some event to indicate the change of state may be needed.
Created attachment 618878 [details] [diff] [review] v0 - implements mozHasAudio and adds a test. Here is a possible patch and its test. If we play chained medias at some point, I suppose we will have to read metadata again (to prevent failure in case of number of channel or playback rate change), and therefore post new a |nsAudioMetadataEventRunner| to the main thread. That should update the |mozHasAudio| property.
Comment on attachment 618878 [details] [diff] [review] v0 - implements mozHasAudio and adds a test. Review of attachment 618878 [details] [diff] [review]: ----------------------------------------------------------------- Nice. This seems a reasonable and way to expose this information until we implement AudioTrackList.
Jared: see Paul's attached patch, which will be enable them to detect when a video has no audio so they can hide the volume controls etc.
https://hg.mozilla.org/integration/mozilla-inbound/rev/b579fa03e84a Also, to make life easier for those checking in patches on your behalf, please follow the directions below for future patches you submit. Thanks! https://developer.mozilla.org/en/Mercurial_FAQ#How_can_I_generate_a_patch_for_somebody_else_to_check-in_for_me.3F https://developer.mozilla.org/en/Creating_a_patch_that_can_be_checked_in
Can't the HTML5 track API be used to check if there's an audio track? Assuming we implemented that of course...
Yes, as I mentioned in comment 3. It seems we can get a result sooner by taking this now than waiting for AudioTrackList to be implemented.
It wouldn't be that hard to implement enough of AudioTrackList to be useful here.
Even better would be to set disabled (instead of noAudio), so that the button is no longer clickable (as muting no sound doesn't work ;-)
mozHasAudio is now documented in: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/15 and in https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement