今天我看到一些视频,苹果提供了在控制中心录制屏幕的选项。
我很好奇它是否也可供开发人员使用?
我用谷歌搜索但没有找到任何与此相关的文档。有人可以对这个话题有所了解。
应用屏幕共享:
根据 API 文档中的新更新,您只能通过您的应用程序捕获屏幕的视频和音频。
RPScreenRecorder:共享记录器对象,提供记录应用程序的音频和视频的能力。
通过这个类,您可以录制您的应用程序屏幕,还可以通过 iPhone 麦克风绑定音频。
以下是一些可用于记录具有不同选项的屏幕的方法。
要访问共享记录器:
class func shared()
要控制应用程序录制:
-- Starts recording the app display.
func startRecording(handler: ((Error?) -> Void)? = nil)
-- Stops the current recording.
func stopRecording(handler: ((RPPreviewViewController?, Error?) -> Void)? = nil)
-- Starts screen and audio capture.
func startCapture(handler: ((CMSampleBuffer, RPSampleBufferType, Error?) -> Void)?, completionHandler: ((Error?) -> Void)? = nil)
-- Stops screen capture
func stopCapture(handler: ((Error?) -> Void)? = nil)
希望这将帮助您在应用程序中捕获屏幕。
参考链接:https ://developer.apple.com/documentation/replaykit/rpscreenrecorder
后期发布但可能对仍在搜索与此问题相关的人有用。
iPhone屏幕共享:
我在共享屏幕上做了一些研发,并提出了以下更新。
涵盖我们实际想要分享/广播或捕获我们的 iOS 设备屏幕的所有细节,包括音频和视频。
Apple 推出ReplyKit2用于屏幕捕获和共享。
广播代码:
1.创建RPScreenRecorder的对象:
`let broadCastController = RPBroadcastController()`
`let recorder = RPScreenRecorder.shared()`
2.使用startBroadcasting()
方法开始广播:
func startBroadcasting() {
RPBroadcastActivityViewController.load { broadcastAVC, error in
guard error == nil else {
print("Cannot load Broadcast Activity View Controller.")
return
}
if let broadcastAVC = broadcastAVC {
broadcastAVC.delegate = self
self.present(broadcastAVC, animated: true, completion: nil)
}
}
}
3.使用下面的活动控制器方法来选择你的应用程序进行广播。
func broadcastActivityViewController(_ broadcastActivityViewController: RPBroadcastActivityViewController,
didFinishWith broadcastController: RPBroadcastController?,
error: Error?) {
guard error == nil else {
print("Broadcast Activity Controller is not available.")
return
}
broadcastActivityViewController.dismiss(animated: true) {
broadcastController?.startBroadcast { error in
//TODO: Broadcast might take a few seconds to load up. I recommend that you add an activity indicator or something similar to show the user that it is loading.
if error == nil {
print("Broadcast started successfully!")
self.broadcastStarted()
}
}
}
}
4.使用stopBroadcasting()
方法停止广播:
func stopBroadcasting() {
broadCastController.finishBroadcast { error in
if error == nil {
print("Broadcast ended")
self.broadcastEnded()
}
}
}
希望这个最新的更新会有所帮助!
会尽快更新更多...