2012-10-08 15 views
5

का उपयोग करते हुए एएसएक्स हैंडलर के माध्यम से एक एसक्यूएल सर्वर ब्लॉब से एक वीडियो फ़ाइल बजाना मैं SQL Server (varbinary (MAX)) में MP4 वीडियो फ़ाइल अपलोड करने और इसे वहां से वापस चलाने के लिए इस codeproject article से कोड का उपयोग कर रहा हूं।एचटीएमएल 5 वीडियो टैग

मेरी आवश्यकता है कि SQL सर्वर का उपयोग विशेष रूप से फ़ाइल सिस्टम से वीडियो संग्रहीत करने और लाने के बजाय किया जाए।

<video id='my_video_1' controls 
    width="640" height="264" 
    data-setup="{"controls":true, "preload":none}" > 
    <source src='<%# "VideoHandler.ashx?id=" + Eval("ID") %>' type='video/mp4'> 
</video> 

मैं वीडियो स्रोत के रूप में एक भौतिक वीडियो फ़ाइल का उपयोग करते हैं, यह काम करता है:

इस कोड मैं वीडियो खेलने के लिए उपयोग कर रहा हूँ है। हालांकि उपर्युक्त कोड काम नहीं करता है।

"इंटरनेट एक्सप्लोरर" में टैग एक लाल क्रॉस

"क्रोम" खिलाड़ी बटन दिखाई देते हैं लेकिन जब मैं खेलने बटन क्लिक करें, कोई वीडियो नहीं चलता में साथ एक ब्लैक बॉक्स बना देता है। जब हम राइट क्लिक करते हैं तो यह "वीडियो को इस तरह से सहेजें ..." विकल्प दिखाता है और डाउनलोड की गई फ़ाइल डेस्कटॉप मीडिया प्लेयर के साथ ठीक चलती है।

कृपया सही कोड के साथ मेरी मदद करें।

+0

डेटा-सेटअप विशेषता के भीतर डबल कोट्स समस्याएं पैदा कर सकते हैं? –

उत्तर

1

एक स्थिर वीडियो स्रोत के साथ अपने <video> कोड ब्लॉक का परीक्षण करें। एक बार आपका मार्कअप अच्छा होने के लिए जाना जाता है, हैंडलर का परीक्षण करें, सुनिश्चित करें कि यह वीडियो को सही ढंग से एन्कोड कर रहा है और सही स्वीकृति प्रदान कर रहा है। player..etc

<video id='my_video_1' controls width="640" height="264" 
    data-setup='{"controls":true, "preload":none}' > 
    <source src='<%# "VideoHandler.ashx?id=" + Eval("ID") %>' 
    type='video/mp4 codecs="avc1.42E01E, mp4a.40.2"'> 
</video> 


public void ProcessRequest (HttpContext context) 
{ 
    .... 
    context.Response.AppendHeader("Content-Type", "video/mp4");` 
    context.Response.AppendHeader("Accept-Ranges", "bytes"); 

    byte[] fileContents = GetYourBytesFromWhereEver(); 
    context.Response.OutputStream.Write(fileContents, 0, fileContents.Length); 
    context.Response.Flush(); 
    ..... 
} 
5

साथ मीडिया यह प्रयास करें एचटीएमएल 5 Video tage के लिए Range Requests समर्थन की आवश्यकता है।

जब आप स्थैतिक फाइलों की सेवा कर रहे हैं तो यह समर्थन सर्वर द्वारा आंतरिक रूप से प्रदान किया जाता है, लेकिन HttpHandler के मामले में आपको यह समर्थन स्वयं प्रदान करना होगा। सामान्य तौर पर इस अनुरोध में Range और If-Range हेडर से निपटने और Content-Range, Date और ETag या Content-Location हेडर के साथ उचित 206 आंशिक सामग्री प्रतिक्रियाओं की सेवा का मतलब है।

लेख Range Requests in ASP.NET MVC – RangeFileResult विवरण रेंज अनुरोध के साथ समर्थन एक ASP.NET MVC ActionResult बनाने का तरीका में वर्णन करता है - आप कोई मुद्दों के साथ HttpHandler की ProcessRequest विधि के लिए ExecuteResult विधि से सभी तर्क स्थानांतरित करने के लिए सक्षम होना चाहिए।

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

  • कोई संबंधित समस्या नहीं^_^