When loading a scene with a video texture, a video.play()
promise is rejected in Chrome due to their policy on autoplay (autoplay is false). From what I can tell the play request is to get the first frame of the video and apply it to the texture.
The scene being loaded is from a link. When the link is clicked from a page on the same domain, the video loads as normal, but when the link is pasted to a new tab the promise is rejected.
I have tried making the video muted by default (Chrome’s policy allows for muted autoplay), but it looks as though the play promise is part of the videotexture constructor.
I noticed that the onUserActionRequestedObservable is offered as a workaround. At what point is this to be called in order to prevent this?
EDIT
Updating _createInternalTexture to set the video as muted before var playing = _this.video.play()
, and then unmuting when the video is paused within this function prevents the promise rejection.