@@ -13,6 +13,7 @@ import { isFinitePositive } from "./playbackAdapter";
1313import { getSourceScopedSelectorIndex } from "../../utils/sourceScopedSelectorIndex" ;
1414import { HF_AUDIO_GROUP_TAG } from "@hyperframes/core/audio-groups" ;
1515import { readElementFades } from "@hyperframes/core/audio-fade" ;
16+ import { elementVolume } from "./storedVolume" ;
1617import {
1718 type AttrReader ,
1819 clampPlaybackRate ,
@@ -213,11 +214,6 @@ function setOptional<K extends keyof TimelineElement>(
213214 else entry [ key ] = value ;
214215}
215216
216- export function parseStoredVolume ( text : string | null ) : number | undefined {
217- const volume = Number . parseFloat ( text ?? "" ) ;
218- return Number . isFinite ( volume ) ? volume : undefined ;
219- }
220-
221217/** The compiler's rule (timingCompiler): explicit data-has-audio wins; otherwise an unmuted <video> is audible. */
222218export function isVideoAudible ( opts : {
223219 tag : string ;
@@ -238,12 +234,6 @@ export function isAudibleVideoNode(el: Element): boolean {
238234 } ) ;
239235}
240236
241- function readVolume ( el : Element , media : Element ) : number | undefined {
242- return parseStoredVolume ( el . getAttribute ( "data-volume" ) ?? media . getAttribute ( "data-volume" ) ) ;
243- }
244-
245- export const elementVolume = ( el : Element ) => readVolume ( el , resolveMediaElement ( el ) ?? el ) ;
246-
247237/** What the mixer gets: the compiler's `data-has-audio` rule, muted and volume. */
248238function applyAudioMetadataFromElement ( entry : TimelineElement , el : Element ) : void {
249239 const media = resolveMediaElement ( el ) ?? el ;
@@ -255,7 +245,7 @@ function applyAudioMetadataFromElement(entry: TimelineElement, el: Element): voi
255245 } ) ;
256246 setOptional ( entry , "hasAudio" , sound ? true : undefined ) ;
257247 setOptional ( entry , "muted" , muted ? true : undefined ) ;
258- setOptional ( entry , "volume" , readVolume ( el , media ) ) ;
248+ setOptional ( entry , "volume" , elementVolume ( el , media ) ) ;
259249}
260250
261251function applyFadeMetadataFromElement ( entry : TimelineElement , el : Element ) : void {
0 commit comments