Feature request: Screen recording API
| Originator: | joachimb | ||
| Number: | rdar://20262995 | Date Originated: | 23-Mar-2015 12:47 PM |
| Status: | Open | Resolved: | |
| Product: | iOS SDK | Product Version: | 8.1 |
| Classification: | Feature (New) | Reproducible: | Always |
It is possible to capture the iOS screen by repeatedly calling -[UIWindow drawViewHierarchyInRect:afterScreenUpdates:NO]. However, it is slow and inefficient (requiring every frame to be drawn twice, every buffer to be converted to a context and then into a CVPixelBuffer). There are private APIs that provide great 60hz screen capture with remarkably small overhead. These have privacy implications, and additionally you of course can't ship apps using these APIs to customers. The case for screen capture: video is a far superior way to communicate about app interactions. It's great for customer support, user feedback, user experience research, and so on. Current (Apple-legal) solutions include QuickTime tethered recording (which is tethered and can't be done on the go), AirPlay capture (which requires a computer), and my product Lookback (which can be used on the go by anyone and uploads automatically, but requires the use of slow public APIs). There is already a AVCaptureScreenInput class that is unavailable on iOS which provides a great API. If you could just go ahead and implement that on iOS, that'd be great ;) On iOS, it would make sense to add a +[AVCaptureScreenInput requestAccess:(void(^)(BOOL accessGranted)callback] API to ask the user for permission to record the screen beforehand. Additionally, this API would be well complemented by a AVCaptureSystemAudioDevice that would capture all audio outputted from the app or system, together with a requestAccess: API there as well.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!