diff options
author | sreeise <reeisesean@gmail.com> | 2019-09-11 19:16:28 -0400 |
---|---|---|
committer | sreeise <reeisesean@gmail.com> | 2019-09-22 10:39:41 -0400 |
commit | 5ea79c64f9a56b3e116d7d306c9d300a5d6717a5 (patch) | |
tree | 2be7b35e36e8b2406e10349ad3919be76262bc68 /components/script/dom/htmlmediaelement.rs | |
parent | 4fe8238b14d535f7ca94a36effda06624b73ecbe (diff) | |
download | servo-5ea79c64f9a56b3e116d7d306c9d300a5d6717a5.tar.gz servo-5ea79c64f9a56b3e116d7d306c9d300a5d6717a5.zip |
Integrates media track selection
Diffstat (limited to 'components/script/dom/htmlmediaelement.rs')
-rw-r--r-- | components/script/dom/htmlmediaelement.rs | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index a607c915802..e3cb0dfb5b2 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -1435,6 +1435,22 @@ impl HTMLMediaElement { Ok(()) } + pub fn set_audio_track(&self, idx: usize, enabled: bool) { + if let Some(ref player) = *self.player.borrow() { + if let Err(err) = player.lock().unwrap().set_audio_track(idx as i32, enabled) { + warn!("Could not set audio track {:#?}", err); + } + } + } + + pub fn set_video_track(&self, idx: usize, enabled: bool) { + if let Some(ref player) = *self.player.borrow() { + if let Err(err) = player.lock().unwrap().set_video_track(idx as i32, enabled) { + warn!("Could not set video track {:#?}", err); + } + } + } + fn handle_player_event(&self, event: &PlayerEvent) { match *event { PlayerEvent::EndOfStream => { @@ -1530,6 +1546,7 @@ impl HTMLMediaElement { kind, DOMString::new(), DOMString::new(), + Some(&*self.AudioTracks()), ); // Steps 2. & 3. @@ -1585,6 +1602,7 @@ impl HTMLMediaElement { kind, DOMString::new(), DOMString::new(), + Some(&*self.VideoTracks()), ); // Steps 2. & 3. @@ -2217,14 +2235,14 @@ impl HTMLMediaElementMethods for HTMLMediaElement { fn AudioTracks(&self) -> DomRoot<AudioTrackList> { let window = window_from_node(self); self.audio_tracks_list - .or_init(|| AudioTrackList::new(&window, &[])) + .or_init(|| AudioTrackList::new(&window, &[], Some(self))) } // https://html.spec.whatwg.org/multipage/#dom-media-videotracks fn VideoTracks(&self) -> DomRoot<VideoTrackList> { let window = window_from_node(self); self.video_tracks_list - .or_init(|| VideoTrackList::new(&window, &[])) + .or_init(|| VideoTrackList::new(&window, &[], Some(self))) } // https://html.spec.whatwg.org/multipage/#dom-media-texttracks |