Registrazione dello schermo multipiattaforma in C# e .NET
Crea un registratore dello schermo in C# con un'unica API per Windows, macOS, Linux, Android e iOS: lo schermo intero, una finestra o un'area, con audio, cursore ed evidenziazione dei clic, in MP4 o in uno streaming dal vivo. Video Capture SDK .NET e Media Blocks SDK .NET usano l'API di cattura nativa di ogni piattaforma.
Da €250/anno · licenza Lifetime da €750
Un ciclo di screenshot non è un registratore dello schermo
Graphics.CopyFromScreen ti dà una sola bitmap su Windows. Un registratore ha bisogno anche di un frame rate stabile, del cursore, dell'audio, di un encoder e di un file in cui l'audio resti sincronizzato con il video, e su ogni altro sistema operativo l'API di cattura cambia di nuovo: AVFoundation o ScreenCaptureKit su macOS, X11 su Linux, MediaProjection su Android, ReplayKit su iOS. Negli SDK VisioForge lo schermo è una sorgente video come una webcam. ScreenSourceBlock usa l'API nativa della piattaforma su cui gira, e l'encoder, il file e lo streaming sono lo stesso codice ovunque.
Costruire da sé un registratore dello schermo multipiattaforma o usare l'SDK
| Soluzione fai-da-te tipica | VisioForge Video Capture SDK .NET e Media Blocks SDK .NET | |
|---|---|---|
| Catturare lo schermo | Un'API nativa diversa su ogni sistema operativo, ognuna dietro il tuo codice di interoperabilità: Desktop Duplication o Windows Graphics Capture su Windows, ScreenCaptureKit o AVFoundation su macOS, X11 o PipeWire su Linux, MediaProjection su Android, ReplayKit su iOS | ScreenSourceBlock con una classe di impostazioni per piattaforma; ScreenSourceBlock() senza argomenti usa la sorgente predefinita della piattaforma |
| Una finestra o un'area | Identificatori di finestra e codice di ritaglio diversi per ogni sistema operativo: HWND su Windows, un ID di finestra X11 su Linux | WindowHandle su Windows o XID su Linux per una finestra, Rectangle per un'area, MonitorIndex su Windows o Monitor su macOS per il monitor |
| Cursore e clic | Comporre da sé cursore e segni dei clic su ogni fotogramma | CaptureCursor su Windows, macOS e Linux; MouseHighlight disegna un cerchio che si espande a ogni clic, preso da un hook globale del mouse su Windows e passato dal tuo codice sulle altre piattaforme |
| Audio | Un'API audio separata per sistema operativo per il microfono, più il loopback WASAPI per l'audio di sistema su Windows, sincronizzato con il video dal tuo codice | SystemAudioSourceBlock per un microfono su tutte le piattaforme, LoopbackAudioCaptureDeviceSourceSettings per l'audio di sistema su Windows, sulla stessa timeline del video |
| Codifica e file | Media Foundation, VideoToolbox e MediaCodec incapsulati uno per uno, oppure una build di FFmpeg distribuita con ogni app | H264EncoderBlock sceglie MediaCodec, VideoToolbox, oppure NVENC, AMF e Quick Sync con OpenH264 come ripiego; output MP4, WebM, MKV, MOV, AVI o MPEG-TS |
| Codice da mantenere | Cinque implementazioni per piattaforma da scrivere, testare e mantenere allineate | Una sola pipeline C#; cambiano solo le impostazioni della sorgente per piattaforma |
La cattura dello schermo su ogni piattaforma
ScreenSourceBlock() senza argomenti sceglie la sorgente predefinita della piattaforma. Passa un oggetto di impostazioni per scegliere l'API, la finestra o l'area.
| Piattaforma | API di cattura | Classe di impostazioni | Audio | Note |
|---|---|---|---|---|
| Windows | Windows Graphics Capture, DXGI Desktop Duplication, DirectX 9, GDI | ScreenCaptureD3D11SourceSettings, ScreenCaptureDX9SourceSettings, ScreenCaptureGDISourceSettings | Audio di sistema (loopback WASAPI) o un microfono | Monitor, area o una finestra; evidenziazione dei clic |
| macOS | AVFoundation | ScreenCaptureMacOSSourceSettings | Microfono | Richiede il permesso di registrazione dello schermo: ScreenSourceBlock.AskPermissions() |
| Mac Catalyst (.NET MAUI) | ScreenCaptureKit | ScreenCaptureMacOSSourceSettings | Microfono | La stessa classe di impostazioni di macOS |
| Linux | X11 | ScreenCaptureXDisplaySourceSettings | Microfono | Richiede una sessione X11; XID o XName seleziona una finestra |
| Android | MediaProjection | AndroidScreenCaptureSourceSettings | Microfono | L'utente accetta la richiesta di sistema; la registrazione gira in un servizio in primo piano |
| iOS | ReplayKit | IOSScreenSourceSettings, IOSBroadcastSourceSettings | Microfono | La tua app, oppure l'intero dispositivo tramite una Broadcast Upload Extension |
Cosa fa l'SDK per un registratore dello schermo
La registrazione dello schermo e del desktop è una sorgente video in VideoCaptureCoreX (Video Capture SDK .NET) e un ScreenSourceBlock in Media Blocks SDK .NET. Tutto ciò che segue la sorgente funziona come per una telecamera: anteprima, registrazione, streaming ed effetti video.
- Tre modalità di cattura: lo schermo intero di qualsiasi monitor, una finestra di applicazione tramite il suo handle, o un rettangolo del desktop
- Windows Graphics Capture è selezionato per impostazione predefinita su Windows 10 versione 1803 e successive; sono disponibili anche le sorgenti DXGI Desktop Duplication, DirectX 9 e GDI
- Audio del PC tramite loopback WASAPI o da un microfono; in Media Blocks SDK .NET, AudioMixerBlock li mixa in un'unica traccia
- Cattura del cursore ed evidenziazione dei clic con colore, raggio e durata configurabili, per tutorial e demo. Su Windows i clic arrivano da un hook globale del mouse: quando MouseHighlight è impostato, VideoCaptureCoreX lo installa all'avvio; in Media Blocks si chiama MouseHighlightSubscribe(). Sulle altre piattaforme il tuo codice passa ogni clic a MouseHighlightAddClickEvent (MouseHighlight_AddClickEvent in VideoCaptureCoreX)
- H.264 hardware: MediaCodec su Android, VideoToolbox sulle piattaforme Apple; su Windows l'SDK prova NVENC, AMF e Quick Sync e ripiega su OpenH264
- Più output contemporaneamente: registra un MP4 mentre trasmetti lo stesso schermo su YouTube via RTMP, SRT o NDI; metti in pausa e riprendi una registrazione o avvia un nuovo file senza fermare l'anteprima
- Un'unica API su Windows, macOS, Linux, Android e iOS, da WinForms, WPF, .NET MAUI e app native macOS, Android e iOS; un esempio per ciascuna
Casi d'uso
Registratori di tutorial ed e-learning
Registra una finestra o l'intero schermo con narrazione ed evidenziazione dei clic, e salva la lezione in MP4.
Supporto e registrazione delle sessioni
Registra cosa ha fatto un utente prima che comparisse un problema e allega il video al ticket di supporto.
QA e automazione dei test
Registra ogni esecuzione di test automatici dell'interfaccia e conserva il video di quelli falliti come prova.
Presentazioni e dirette
Trasmetti lo schermo su YouTube o a un ricevitore NDI e conserva una copia MP4 locale della stessa cattura.
Esempi di codice
Condensati dalle demo Screen Capture di Video Capture SDK .NET e Media Blocks SDK .NET. I primi due girano in un form WinForms, il terzo in una pagina .NET MAUI; ognuno ha un VideoView VisioForge chiamato videoView1 o videoView.
Registrare lo schermo e l'audio di sistema in MP4
C#Registrare una finestra con evidenziazione dei clic
C#Un registratore per Windows, macOS, Android e iOS (.NET MAUI)
C#La pipeline
L'esempio della finestra e quello .NET MAUI usano gli stessi quattro blocchi. ScreenSourceBlock cattura lo schermo con l'API della piattaforma, TeeBlock divide i fotogrammi tra anteprima ed encoder, e MP4SinkBlock scrive il file. Da una piattaforma all'altra cambiano solo le impostazioni della sorgente.
Domande frequenti
Come registro l'audio riprodotto dal PC?▼
Posso registrare una finestra coperta da altre finestre?▼
Funziona su macOS e Linux?▼
Posso registrare lo schermo su Android e iOS?▼
Perché la registrazione è nera?▼
Quale SDK mi serve?▼
Documentazione ed esempi
Guida alla cattura dello schermo
Cattura dello schermo intero, di un'area e di una finestra con VideoCaptureCore e VideoCaptureCoreX, configurazioni multi-monitor e risoluzione dei problemi.
Tutorial cattura dello schermo in MP4
Tutorial C# passo passo con video: registratore da console, audio di sistema ed encoder su GPU.
Screen Capture X Demo (WPF)
Esempio di Video Capture SDK .NET: schermo, area o finestra, audio da microfono o loopback, output MP4, WebM, AVI, MOV e MPEG-TS.
Screen Capture MB Demo (WPF)
Esempio di Media Blocks SDK .NET: cattura dello schermo o di una finestra con evidenziazione dei clic, anteprima e registrazione MP4.
Sorgente dello schermo in Media Blocks
Riferimento di ScreenSourceBlock: la classe di impostazioni di ogni piattaforma e la tecnologia di cattura sottostante.
ScreenCaptureMB (.NET MAUI)
Esempio di Media Blocks SDK .NET per Windows, Mac Catalyst, Android e iOS: anteprima dello schermo e registrazione MP4, con la richiesta MediaProjection su Android.
Inizia a registrare lo schermo
Scarica la versione di prova completa di 30 giorni ed esegui le demo Screen Capture. A seconda del motore e dell'output, può comparire una filigrana o un avviso di versione non registrata.
SDK con registrazione dello schermo
Video Capture SDK .NET
Motore di cattura: schermo, finestra o area con audio di sistema o microfono, registrati su file o trasmessi in streaming, con anteprima.
Scopri di più →Media Blocks SDK .NET
SDK di pipeline: ScreenSourceBlock su Windows, macOS, Linux, Android e iOS, combinato con la tua elaborazione, il mixaggio e gli output.
Scopri di più →Da €250/anno · licenza Lifetime da €750
