Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

WinRT: cattura di video e audio con la Webcam

Nel post precedente abbiamo visto come, con poche righe di codice, sia possibile catturare immagini con la Webcam e salvarle su disco nelle applicazioni per Windows 8.

La classe CameraCaptureUI, già descritta, permette di catturare anche video con un procedimento sintattico molto simile.

Ipotizziamo di avere un controllo MediaElement, che andrà a rappresentare il video una volta catturato:

        <MediaElement Name="Media1" />

Ora consideriamo il seguente codice:

    'Richiede le seguenti direttive:
    'Imports Windows.Storage.Streams
    'Imports Windows.Media.Capture
    'Imports Windows.Storage
    Dim stream As IRandomAccessStream
 
    Private Async Function CaptureVideo() As Task
        Dim camera As New CameraCaptureUI
        'Imposta il formato video
        'Il default è Mp4, alternativa è .Wmv
        camera.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4
 
        'E' possibile, ma non obbligatorio, impostare la durata max del video
        camera.VideoSettings.MaxDurationInSeconds = 20
 
        'Se la imposto, devo consentire per forza il trimming
        camera.VideoSettings.AllowTrimming = True
 
 
        Try
            'Catturo il video, che viene salvato su disco nello spazio dell'app
            Dim file As StorageFile = Await camera.CaptureFileAsync(CameraCaptureUIMode.Video)
 
            If file IsNot Nothing Then
                Me.stream = Await file.OpenAsync(FileAccessMode.Read)
 
                Me.Media1.SetSource(Me.stream, file.ContentType)
 
            End If
        Catch ex As Exception
 
        End Try
    End Function
 
    'Poichè sto riproducendo il video nel MediaElement,
    'non posso fare il Dispose dello stream prima. Quindi, lo
    'faccio nell'evento Opened del MediaElement
    Private Sub Media1_MediaOpened(sender As Object, e As RoutedEventArgsHandles Media1.MediaOpened
        Me.stream.Dispose()
    End Sub

Come vedete l'utilizzo è abbastanza simile a quanto abbiamo visto per le foto. Diciamo che:

  • bisogna abilitare entrambe le capability Webcam e Microphone. Questo perché la cattura video può prevedere anche l'audio.
  • La proprietà VideoSettings permette di gestire le impostazioni del video
  • il formato predefinito di cattura è l'Mp4 ma si può scegliere anche il Wmv
  • facoltativamente si può specificare un tempo max di durata per il video (MaxDurationInSeconds). E' importante specificare che questo valore non limita la cattura, ma limita la lunghezza del video dopo che l'utente ha eseguito il ritaglio (trimming) che a questo punto diventa obbligatorio
  • Il trimming è facoltativo solamente se la durata del video non ha limite.

E' anche possibile, poi, salvare il video altrove o con un altro nome partendo dal riferimento del file ottenuto, come abbiamo fatto la volta scorsa per le foto.

Alessandro

Print | posted on giovedì 9 maggio 2013 10:20 | Filed Under [ UWP e Windows Store Apps ]

Powered by:
Powered By Subtext Powered By ASP.NET