@@ -171,6 +171,168 @@ export class YouTubePlayer implements AfterViewInit, OnDestroy {
171171 this . _ngZone . run ( ( ) => callback ( ...args ) ) ;
172172 } ;
173173 }
174+
175+ /** Proxied methods. */
176+
177+ /** See https://developers.google.com/youtube/iframe_api_reference#playVideo */
178+ playVideo ( ) {
179+ if ( ! this . _player ) {
180+ return ;
181+ }
182+ this . _player . playVideo ( ) ;
183+ }
184+
185+ /** See https://developers.google.com/youtube/iframe_api_reference#pauseVideo */
186+ pauseVideo ( ) {
187+ if ( ! this . _player ) {
188+ return ;
189+ }
190+ this . _player . pauseVideo ( ) ;
191+ }
192+
193+ /** See https://developers.google.com/youtube/iframe_api_reference#stopVideo */
194+ stopVideo ( ) {
195+ if ( ! this . _player ) {
196+ return ;
197+ }
198+ this . _player . stopVideo ( ) ;
199+ }
200+
201+ /** See https://developers.google.com/youtube/iframe_api_reference#seekTo */
202+ seekTo ( seconds : number , allowSeekAhead : boolean ) {
203+ if ( ! this . _player ) {
204+ return ;
205+ }
206+ this . _player . seekTo ( seconds , allowSeekAhead ) ;
207+ }
208+
209+ /** See https://developers.google.com/youtube/iframe_api_reference#mute */
210+ mute ( ) {
211+ if ( ! this . _player ) {
212+ return ;
213+ }
214+ this . _player . mute ( ) ;
215+ }
216+
217+ /** See https://developers.google.com/youtube/iframe_api_reference#unMute */
218+ unMute ( ) {
219+ if ( ! this . _player ) {
220+ return ;
221+ }
222+ this . _player . unMute ( ) ;
223+ }
224+
225+ /** See https://developers.google.com/youtube/iframe_api_reference#isMuted */
226+ isMuted ( ) : boolean {
227+ if ( ! this . _player ) {
228+ return false ;
229+ }
230+ return this . _player . isMuted ( ) ;
231+ }
232+
233+ /** See https://developers.google.com/youtube/iframe_api_reference#setVolume */
234+ setVolume ( volume : number ) {
235+ if ( ! this . _player ) {
236+ return ;
237+ }
238+ this . _player . setVolume ( volume ) ;
239+ }
240+
241+ /** See https://developers.google.com/youtube/iframe_api_reference#getVolume */
242+ getVolume ( ) : number {
243+ if ( ! this . _player ) {
244+ return 0 ;
245+ }
246+ return this . _player . getVolume ( ) ;
247+ }
248+
249+ /** See https://developers.google.com/youtube/iframe_api_reference#setPlaybackRate */
250+ setPlaybackRate ( playbackRate : number ) {
251+ if ( ! this . _player ) {
252+ return ;
253+ }
254+ return this . _player . setPlaybackRate ( playbackRate ) ;
255+ }
256+
257+ /** See https://developers.google.com/youtube/iframe_api_reference#getPlaybackRate */
258+ getPlaybackRate ( ) : number {
259+ if ( ! this . _player ) {
260+ return 0 ;
261+ }
262+ return this . _player . getPlaybackRate ( ) ;
263+ }
264+
265+ /** See https://developers.google.com/youtube/iframe_api_reference#getAvailablePlaybackRates */
266+ getAvailablePlaybackRates ( ) : number [ ] {
267+ if ( ! this . _player ) {
268+ return [ ] ;
269+ }
270+ return this . _player . getAvailablePlaybackRates ( ) ;
271+ }
272+
273+ /** See https://developers.google.com/youtube/iframe_api_reference#getVideoLoadedFraction */
274+ getVideoLoadedFraction ( ) : number {
275+ if ( ! this . _player ) {
276+ return 0 ;
277+ }
278+ return this . _player . getVideoLoadedFraction ( ) ;
279+ }
280+
281+ /** See https://developers.google.com/youtube/iframe_api_reference#getPlayerState */
282+ getPlayerState ( ) : YT . PlayerState {
283+ if ( ! this . _player ) {
284+ return YT . PlayerState . UNSTARTED ;
285+ }
286+ return this . _player . getPlayerState ( ) ;
287+ }
288+
289+ /** See https://developers.google.com/youtube/iframe_api_reference#getCurrentTime */
290+ getCurrentTime ( ) : number {
291+ if ( ! this . _player ) {
292+ return 0 ;
293+ }
294+ return this . _player . getCurrentTime ( ) ;
295+ }
296+
297+ /** See https://developers.google.com/youtube/iframe_api_reference#getPlaybackQuality */
298+ getPlaybackQuality ( ) : YT . SuggestedVideoQuality {
299+ if ( ! this . _player ) {
300+ return 'default' ;
301+ }
302+ return this . _player . getPlaybackQuality ( ) ;
303+ }
304+
305+ /** See https://developers.google.com/youtube/iframe_api_reference#getAvailableQualityLevels */
306+ getAvailableQualityLevels ( ) : YT . SuggestedVideoQuality [ ] {
307+ if ( ! this . _player ) {
308+ return [ ] ;
309+ }
310+ return this . _player . getAvailableQualityLevels ( ) ;
311+ }
312+
313+ /** See https://developers.google.com/youtube/iframe_api_reference#getDuration */
314+ getDuration ( ) : number {
315+ if ( ! this . _player ) {
316+ return 0 ;
317+ }
318+ return this . _player . getDuration ( ) ;
319+ }
320+
321+ /** See https://developers.google.com/youtube/iframe_api_reference#getVideoUrl */
322+ getVideoUrl ( ) : string {
323+ if ( ! this . _player ) {
324+ return '' ;
325+ }
326+ return this . _player . getVideoUrl ( ) ;
327+ }
328+
329+ /** See https://developers.google.com/youtube/iframe_api_reference#getVideoEmbedCode */
330+ getVideoEmbedCode ( ) : string {
331+ if ( ! this . _player ) {
332+ return '' ;
333+ }
334+ return this . _player . getVideoEmbedCode ( ) ;
335+ }
174336}
175337
176338/** Listens to changes to the given width and height and sets it on the player. */
0 commit comments