vidstack/player

Youtube & Vimeo provider throw provider destroyed error

Benny739 opened this issue · 2 comments

Current Behavior:

When youtube or vimeo provider are getting destroyed they are throwing a "provider destroyed" error.
Problem is already mentioned in a discussion: #1378

Expected Behavior:

No error is thrown when provider gets destroyed

Steps To Reproduce:

  1. Switch to youtube or vimeo in the demo
  2. Switch to some other provider
  3. Error gets thrown

I get the same if trying to switch the src from Youtube to Vimeo or the other way around.

If I first set the src = '', and then to the Vimeo src after a timeout, there's no error.

I was able to avoid this error by exiting my onProviderChange function before processing the undefined provider:

const onProviderChange = provider => {
  // exit if no provider to prevent error
  if (!provider) {
    return;
  }
  if (isVimeoProvider(provider)) {
      // handle vimeo provider
  }
  if (isYouTubeProvider(provider)) {
    // handle youtube provider
  }
};
  
...

<MediaPlayer 
  onProviderChange={onProviderChange}
  {...}
>
  {...}
</MediaPlayer>