2014-09-03 11 views
7

पर वीडियो स्ट्रीम करें क्या किसी को एक सुरक्षित एज़ूर ब्लॉब (https के माध्यम से) को WPF एप्लिकेशन में .mp4 वीडियो स्ट्रीम करने का तरीका पता है।सुरक्षित एज़ूर ब्लॉब से WPF

मैं uri पैदा कर रहा हूँ के रूप में निम्नानुसार ...

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; 
} 

मैं देख लिया है कि सेवा संस्करण कम से कम "2013-08-15" ब्लॉब आइटम के लिए और कहा कि सेट कर दिया जाता है सही सामग्री प्रकार सेट।

मुझे पता है कि यूरी का प्रारूप सही है, क्योंकि मैं इसे ब्राउज़र में पेस्ट कर सकता हूं, और इसे विंडोज 8 स्टोर एप्लिकेशन में भी उपयोग कर सकता हूं, और वीडियो स्ट्रीम सही ढंग से कर सकता है।

हालांकि, जब मैं एक WPU MediaElement के स्रोत के रूप में एक ही यूरी असाइन करता हूं, तो मुझे MediaPlayer की आंतरिक कार्यप्रणाली में एक NullReferenceException गहराई मिलती है। ओपन()।

+0

क्या आप नमूना वीडियो में एक गैर समाप्ति यूआरएल प्रदान कर सकते हैं? – pushpraj

+0

परीक्षण वीडियो मानक संदर्भ फाइलें हैं जैसे http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4, लेकिन तय किया गया है कि हेडर http: // का उपयोग कर अंत की बजाय फ़ाइल की शुरुआत में है। /renaun.com/blog/2010/06/qtindexswapper-2/। जैसा कि मैंने कहा कि वे एक वेब ब्राउज़र और विंडोज 8.1 स्टोर एप्लिकेशन में ठीक स्ट्रीम करते हैं, सिर्फ डब्ल्यूपीएफ में नहीं। वे एक गैर-सुरक्षित ब्लॉब कंटेनर से WPF तक ठीक स्ट्रीम भी करेंगे, लेकिन सामग्री की प्रकृति (संभावित पुलिस सबूत) के लिए एक सुरक्षित कंटेनर का उपयोग करने की आवश्यकता होती है। – Peregrine

उत्तर

2

known issue with WPF MediaElement when playing from HTTPS एंडपॉइंट्स लगता है। सादा HTTP पर खेलते समय कोई समस्या नहीं है (बिना "एस" के)।

यह माइक्रोसॉफ्ट एज़ूर से संबंधित नहीं है, या ब्लॉब संबंधित है। यह शुद्ध डब्ल्यूपीएफ मुद्दा है, हालांकि ऐसा लगता है कि अगर निश्चित हो तो जल्द ही तय नहीं किया जाएगा।

HTTPS स्ट्रीम के लिए आप या तो सिल्वरलाइट या विंडोज 8 आधुनिक अनुप्रयोगों का उपयोग कर सकते हैं - दोनों बिना किसी समस्या के HTTPS स्ट्रीम का समर्थन करते हैं।

आप शायद डब्लूपीएफ के लिए तीसरे पक्ष के नियंत्रण को ढूंढ सकते हैं जो एचटीटीपीएस पर मीडिया खेलने का समर्थन करता है।

अद्यतन

VideoLan.NET WPF Controls मैं HTTPS बनाने के लिए मीडिया खेलने में सक्षम था का उपयोग करना। अभी तक डब्ल्यूपीएफ के लिए एकमात्र नियंत्रण जो सफलतापूर्वक HTTPS मीडिया चलाता है। इसके लिए विंडोज़ के लिए वीडियोलैन वीएलसी प्लेयर की वैध स्थापना की आवश्यकता है। मैंने the portable one (ZIP package) का उपयोग किया और यह पूरी तरह से काम करता है। VideoLan.NET के लिए प्रलेखन थोड़ा गन्दा है, लेकिन परिणाम यह है कि आप सुरक्षित रूप से WPF में HTTPS स्ट्रीम/प्रगतिशील डाउनलोड चला सकते हैं।

संबंधित मुद्दे