我想实现像Skype这样的屏幕共享功能(当应用程序在后台时,它也会共享iPhone的屏幕),为此我使用广播扩展。
这是我在 viewcontroller.swift 中的代码
import UIKit
import ReplayKit
@available(iOS 12.0, *)
class ViewController: UIViewController {
var broadcastPicker: RPSystemBroadcastPickerView?
var broadcastSession : NSObject?
override func viewDidLoad() {
super.viewDidLoad()
let kPickerFrame = CGRect(x: 100.0, y: 100.0, width: 100.0, height: 100.0)
broadcastPicker = RPSystemBroadcastPickerView(frame: kPickerFrame)
broadcastPicker?.backgroundColor = UIColor.green
broadcastPicker!.preferredExtension = "com.sharescreen.Recoder"
view.addSubview(broadcastPicker!)
extensionContext?.loadBroadcastingApplicationInfo(completion: {
(bundleID, displayName, appIcon) in
})
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击 RPSystemBroadcastPickerView 时,我会弹出开始广播,当我开始广播时,任何扩展方法都没有调用。
这是我的扩展课程
class SampleHandler: RPBroadcastSampleHandler {
var session : VTCompressionSession?
override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
// User …Run Code Online (Sandbox Code Playgroud)