应用程序屏幕共享:
根据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)
}
}
}
使用下面的Activity Controller方法选择要广播的应用程序。
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()
}
}
}
希望这次最新的更新会有所帮助!
稍后将更新更多内容...