Bug 224747

Summary: "A MediaStreamTrack ended due to a capture failure" if trying to show the stream in a video tag not appended to DOM
Product: WebKit Reporter: Francesco Durighetto (kekkokk) <francesco.durighetto>
Component: WebRTCAssignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Major CC: youennf
Priority: P2    
Version: Safari 14   
Hardware: iPhone / iPad   
OS: iOS 14   

Description Francesco Durighetto (kekkokk) 2021-04-19 03:47:30 PDT
There is a bug in safari 14 (reproducible only on mobile devices (iPhone/iPad) where a mediastream from getusermedia fires a: "A MediaStreamTrack ended due to a capture failure" if this stream is attached to a video element not present in DOM.

also, this is a bit tricky because it crashes when calling .play() on videoElement if this element is NOT attached to dom.
but if this videoElement is NOT attached. to DOM BUT it has the autoplay attribute AND you does not invoke the .play() method it seems to work.

I think the best way to describe this bug is via a simple snippet so you can try the different combinations of events and better understand the problem.

https://codepen.io/francesco-d/full/MWJqOwq
Comment 1 Francesco Durighetto (kekkokk) 2021-04-19 04:09:27 PDT
(In reply to Francesco from comment #0)
> There is a bug in safari 14 (reproducible only on mobile devices
> (iPhone/iPad) where a mediastream from getusermedia fires a: "A
> MediaStreamTrack ended due to a capture failure" if this stream is attached
> to a video element not present in DOM.
> 
> also, this is a bit tricky because it crashes when calling .play() on
> videoElement if this element is NOT attached to dom.
> but if this videoElement is NOT attached. to DOM BUT it has the autoplay
> attribute AND you does not invoke the .play() method it seems to work.
> 
> I think the best way to describe this bug is via a simple snippet so you can
> try the different combinations of events and better understand the problem.
> 
> https://codepen.io/francesco-d/full/MWJqOwq

Doesnotwork: safari mobile 14.0.1
Seems fixed in safari mobile 14.0.3
Comment 2 youenn fablet 2021-04-19 04:39:00 PDT
Thanks for the testing Francesco.