@@ -171,6 +171,168 @@ export class YouTubePlayer implements AfterViewInit, OnDestroy {
171
171
this . _ngZone . run ( ( ) => callback ( ...args ) ) ;
172
172
} ;
173
173
}
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
+ }
174
336
}
175
337
176
338
/** Listens to changes to the given width and height and sets it on the player. */
0 commit comments