Bug 226698 - Manually resuming a video after phone call prevents other videos in a session from resuming
Summary: Manually resuming a video after phone call prevents other videos in a session...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebRTC (show other bugs)
Version: Safari 14
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-06-06 09:24 PDT by Kongpheng
Modified: 2021-06-13 09:25 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kongpheng 2021-06-06 09:24:10 PDT
I was able to reproduce this issue on iOS Safari 14.7 (18G5023c).

To reproduce:
* Using iOS Safari, go to https://webrtc.github.io/samples/src/content/peerconnection/pc1/
* On the console, enter: var video = $('#remoteVideo'); video.onpause = () => { console.log('paused; resuming play'); video.play(); }
* Click Start button.  If prompted for access for camera and microphone, then grant access
* Click Call button to start the one-to-one video call
* Using another phone, call the iPhone iOS Safari is running on
* From iPhone iOS Safari is running on, reject the call
* Notice that only one of the videos resumes.  The other does not.

We have a potential workaround for this issue.  Initial testing looks OK.  That said, will need to test more thoroughly.  The heuristic:
* When the pause event is dispatched after a phone call ends, check "paused" state of all video elements in application
* If other videos are paused as well, then they were likely paused because a phone call just ended
* Call play() on all video elements to ensure they're all resumed
Comment 1 Radar WebKit Bug Importer 2021-06-13 09:25:14 PDT
<rdar://problem/79261528>