【笔记】IOS实现通过录屏获取屏幕内容

前言

IOS实现通过录屏获取屏幕内容

正文

  • File->New->Target

  • iOS->Broadcast Upload Extension->Next

  • 定义Product NameTeam->Finish

  • Activate

  • SampleHandler.swf中编写实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import ReplayKit

class SampleHandler: RPBroadcastSampleHandler {

override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
// User has requested to start the broadcast. Setup info from the UI extension can be supplied but optional.
// 录屏开始事件
}

override func broadcastPaused() {
// User has requested to pause the broadcast. Samples will stop being delivered.
// 录屏暂停事件
}

override func broadcastResumed() {
// User has requested to resume the broadcast. Samples delivery will resume.
// 录屏恢复事件
}

override func broadcastFinished() {
// User has requested to finish the broadcast.
// 录屏结束事件
}

override func processSampleBuffer(_ sampleBuffer: CMSampleBuffer, with sampleBufferType: RPSampleBufferType) {
switch sampleBufferType {
case RPSampleBufferType.video:
// Handle video sample buffer
// 录屏采集到的视频
break
case RPSampleBufferType.audioApp:
// Handle audio sample buffer for app audio
// 录屏采集到的App声音
break
case RPSampleBufferType.audioMic:
// Handle audio sample buffer for mic audio
// 录屏采集到的麦克风声音
break
@unknown default:
// Handle other sample buffer types
fatalError("Unknown type of sample buffer")
}
}

}

完成

参考文献

SourceKim’s Blog