Swift
Créer l'outil de capture d'écran
Le SDK de Vonage s'attend à ce qu'un capteur vidéo personnalisé soit conforme aux normes suivantes OTVideoCapture. Créer un nouveau fichier ScreenCapturer.swift et la mettre en œuvre :
- Stocker une référence à la vue à capturer - même si notre application est configurée en SwiftUI, la façon la plus simple de le faire est avec
UIViewque nous transmettrons au Capturer, ce qui peut également être fait avec un fichierUIViewRepresentablela couverture. - Rendre la vue périodiquement - utiliser
drawHierarchy(in:afterScreenUpdates:). - Convertir en
CVPixelBuffer/OTVideoFrame- et transmet les trames àvideoCaptureConsumer.
Capturer une vue
import Foundation
import UIKit
import OpenTok
class ScreenCapturer: NSObject, OTVideoCapture {
var videoContentHint: OTVideoContentHint
var videoCaptureConsumer: OTVideoCaptureConsumer?
private let captureView: UIView
private let captureQueue = DispatchQueue(label: "screen-capture")
private var timer: DispatchSourceTimer
private var capturing = false
private var videoFrame: OTVideoFrame
private var pixelBuffer: CVPixelBuffer?
init(withView view: UIView) {
self.videoContentHint = .none
self.captureView = view
self.timer = DispatchSource.makeTimerSource(flags: .strict, queue: captureQueue)
self.videoFrame = OTVideoFrame(format: OTVideoFormat(argbWithWidth: 0, height: 0))
}
private func captureFrame() -> UIImage {
UIGraphicsBeginImageContextWithOptions(captureView.bounds.size, false, 0)
defer { UIGraphicsEndImageContext() }
captureView.drawHierarchy(in: captureView.bounds, afterScreenUpdates: false)
return UIGraphicsGetImageFromCurrentImageContext() ?? UIImage()
}
// Implement initCapture, start, stop, releaseCapture, isCaptureStarted, captureSettings
// and feed frames to videoCaptureConsumer. See ScreenCapturer.swift for full implementation.
}
Copier le texte complet ScreenCapturer.swift de cet exemple de projet. Il gère :
- Capture basée sur une minuterie à ~10 ips
- Redimensionnement et remplissage pour la compatibilité avec l'encodeur
CVPixelBuffercréation etOTVideoFramelivraison
Partage d'écran
Apprenez à mettre en œuvre la capacité de partage d'écran en utilisant la plateforme Video API de Vonage.
Étapes
1
Introduction2
Pour commencer3
Création d'un nouveau projet4
Ajout du SDK vidéo de Vonage5
Configuration de l'authentification6
Créer l'outil de capture d'écran7
Exposer la vue racine pour une capture en plein écran8
Exposer la vue racine pour une capture en plein écran9
Résumé10
Conclusion