Emcee

Форк
0
/
SimulatorVideoRecorder.swift 
53 строки · 1.5 Кб
1
import CommonTestModels
2
import Foundation
3
import PathLib
4
import ProcessController
5
import SimulatorPoolModels
6

7
public final class SimulatorVideoRecorder {
8
    public enum CodecType: String {
9
        case h264
10
        case hevc
11
    }
12
    
13
    private let processControllerProvider: ProcessControllerProvider
14
    private let simulatorUuid: UDID
15
    private let simulatorSetPath: AbsolutePath
16

17
    public init(
18
        processControllerProvider: ProcessControllerProvider,
19
        simulatorUuid: UDID,
20
        simulatorSetPath: AbsolutePath
21
    ) {
22
        self.processControllerProvider = processControllerProvider
23
        self.simulatorUuid = simulatorUuid
24
        self.simulatorSetPath = simulatorSetPath
25
    }
26
    
27
    public func startRecording(
28
        codecType: CodecType,
29
        outputPath: AbsolutePath
30
    ) throws -> CancellableRecording {
31
        let processController = try processControllerProvider.createProcessController(
32
            subprocess: Subprocess(
33
                arguments: [
34
                    "/usr/bin/xcrun",
35
                    "simctl",
36
                    "--set",
37
                    simulatorSetPath,
38
                    "io",
39
                    simulatorUuid.value,
40
                    "recordVideo",
41
                    "--codec=\(codecType.rawValue)",
42
                    outputPath
43
                ]
44
            )
45
        )
46
        try processController.start()
47

48
        return CancellableRecordingImpl(
49
            outputPath: outputPath,
50
            recordingProcess: processController
51
        )
52
    }
53
}
54

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.