diff --git a/src/youtube-player/youtube-player.spec.ts b/src/youtube-player/youtube-player.spec.ts index 84bc1b947efd..864b6ac89d18 100644 --- a/src/youtube-player/youtube-player.spec.ts +++ b/src/youtube-player/youtube-player.spec.ts @@ -6,6 +6,7 @@ import {createFakeYtNamespace} from './fake-youtube-player'; import {Subscription} from 'rxjs'; const VIDEO_ID = 'a12345'; +const YT_LOADING_STATE_MOCK = {loading: 1, loaded: 0}; describe('YoutubePlayer', () => { let playerCtorSpy: jasmine.Spy; @@ -381,6 +382,8 @@ describe('YoutubePlayer', () => { }); it('waits until the api is ready before initializing', () => { + (window.YT as any) = YT_LOADING_STATE_MOCK; + fixture = TestBed.createComponent(TestApp); testComponent = fixture.debugElement.componentInstance; fixture.detectChanges(); diff --git a/src/youtube-player/youtube-player.ts b/src/youtube-player/youtube-player.ts index a34a7f5b624a..8fa42c288acd 100644 --- a/src/youtube-player/youtube-player.ts +++ b/src/youtube-player/youtube-player.ts @@ -210,7 +210,7 @@ export class YouTubePlayer implements AfterViewInit, OnDestroy, OnInit { } let iframeApiAvailableObs: Observable = observableOf(true); - if (!window.YT) { + if (!window.YT || !window.YT.Player) { if (this.showBeforeIframeApiLoads && (typeof ngDevMode === 'undefined' || ngDevMode)) { throw new Error('Namespace YT not found, cannot construct embedded youtube player. ' + 'Please install the YouTube Player API Reference for iframe Embeds: ' +