2014-09-03 11 views
7

Qualcuno conosce un modo per lo streaming di video .mp4 da un BLOB BLU sicuro (tramite https) in un'applicazione WPF.Stream video da BLOB BLU sicuro a WPF

Sto generando l'URI come segue ...

public Uri GetSecureUriForBlob(CloudBlobContainer container, string blobName) 
{ 
    var blockBlob = container.GetBlockBlobReference(blobName); 
    var beforeOffset = new DateTimeOffset(DateTime.UtcNow.AddMinutes(-5)); 
    var afterOffset = new DateTimeOffset(DateTime.UtcNow.AddHours(1)); 

    var builder = new UriBuilder(blockBlob.Uri) 
    { 
     Query = blockBlob.GetSharedAccessSignature(
      new SharedAccessBlobPolicy 
      { 
       Permissions = SharedAccessBlobPermissions.Read, 
       SharedAccessStartTime = beforeOffset, 
       SharedAccessExpiryTime = afterOffset 
      }).TrimStart('?') 
    }; 

    return builder.Uri; 
} 

Ho controllato che la versione del servizio è impostato su almeno "2013/08/15" e che l'oggetto blob ha la corretta tipo di contenuto impostato.

So che il formato dell'uri è corretto, perché posso incollarlo in un browser e anche usarlo in un'applicazione di archivio di Windows 8 e il video è in streaming correttamente.

Tuttavia, quando assegno lo stesso uri dell'origine per un MediaPagamento WPF, ottengo un'eccezione NullReferenceException nel funzionamento interno di MediaPlayer.Open().

+0

potresti fornire un URL non in scadenza ad un video campione? – pushpraj

+0

I video di prova sono i file di riferimento standard come http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4, ma risolti in modo che l'intestazione sia all'inizio del file anziché alla fine usando http://renaun.com/blog/2010/06/qtindexswapper-2/. Come ho detto, funzionano bene in un browser Web e un'applicazione di Windows 8.1 store, ma non in WPF. Passeranno anche da un contenitore di blob non sicuro a WPF, ma la natura del contenuto (possibili prove di polizia) richiede l'uso di un contenitore sicuro. – Peregrine

risposta

2

Sembra esserci un endpoint known issue with WPF MediaElement when playing from HTTPS. Non ci sono problemi durante la riproduzione su HTTP semplice (senza "S").

Questo non è correlato a Microsoft Azure o Blob. Si tratta di un problema WPF puro, che tuttavia sembra che non verrà risolto a breve, se risolto.

Per gli stream HTTPS è possibile utilizzare Silverlight o Windows 8 Modern - entrambi supportano i flussi HTTPS senza problemi.

Probabilmente potresti trovare un controllo di terze parti per WPF che supporta la riproduzione di contenuti multimediali su HTTPS.

UPDATE

Utilizzando la VideoLan.NET WPF Controls sono stato in grado di fare HTTPS riproduzione multimediale. Finora gli unici controlli per WPF che riproducono correttamente i media HTTPS. Ciò richiede un'installazione valida di VideoLAN VLC player per Windows. Ho usato the portable one (ZIP package) e funziona perfettamente. La documentazione per VideoLan.NET è un po 'caotica, ma il risultato è che puoi giocare in sicurezza streaming HTTPS/download progressivi in ​​WPF.

Problemi correlati