2012-05-30 19 views
5

मैं वेबव्यू में वीडियो फ़ाइलों को चला सकता हूं, लेकिन वीडियो उपयोगकर्ता इंटरैक्शन के बिना स्वचालित रूप से खेल रहे हैं। तो अब मैं इसे प्राप्त करने के लिए अलग-अलग दृष्टिकोण का अनुसरण कर रहा हूं।UIWebView में खेलने के लिए एचटीएमएल में एक स्थानीय वीडियो फ़ाइल को कैसे एम्बेड करें?

NSString* embedHTML = @"\ 
     <html><head>\ 
     <style type=\"text/css\">\ 
     body {\ 
     background-color: transparent;\ 
     color: white;\ 
     }\ 
     </style>\ 
     </head><body style=\"margin:0\">\ 
     <embed id=\"yt\" src=\"http://www.businessfactors.de/bfcms/images/stories/videos/defaultscreenvideos.mp4\" type=\"application/x-shockwave-mp4\" \ 
     width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
     </body></html>"; 


_webView = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 412.0)]; 

    [_webView setOpaque:NO]; 
    NSString *html = [NSString stringWithFormat:embedHTML, _webView.frame.size.width, _webView.frame.size.height]; 
    [_webView loadHTMLString:html baseURL:nil]; 

इस तरह, मैं इंटरनेट से वीडियो फ़ाइल खेल सकते हैं। लेकिन मैं स्थानीय मेमोरी से फाइलों को खेलना चाहता हूं।

यदि स्थानीय फ़ाइल पथ चर पारित करने का प्रयास किया गया है, तो भी वीडियो खेलने में असमर्थ है। क्या कोई मुझे बता सकता है कि मेरी स्थानीय फाइल को एचटीएमएल में कैसे एम्बेड किया जाए ताकि मैं वेबव्यू में इंटरनेट वीडियो की तरह खेल सकूं?

केस 1: वीडियो स्वचालित रूप से वेबव्यू में खेल रहा है लेकिन प्ले बटन अभी भी शीर्ष पर है। केस 2: ऑनलाइन वीडियो यूआरएल ऊपर दिखाए गए अनुसार एम्बेडेड है और वीडियो चलाया जा सकता है। लेकिन मैं ऑनलाइन वीडियो यूआरएल

+0

कृपया मेरे [उत्तर] [1] पर एक नज़र डालें। उम्मीद है कि यह मदद करता है। [1]: http: //stackoverflow.com/questions/6759818/embed-video-in-html-file-loaded-in-uiwebview-from-documents-folder-of-applicatio/6964742#6964742 –

उत्तर

2

के बजाय स्थानीय वीडियो फ़ाइल पथ को पास करना चाहता हूं यदि आप UIWebView का उपयोग कर रहे हैं तो आप स्थानीय मेमोरी से फ़ाइलें नहीं चला सकते हैं। यदि आप अपने वीडियो को स्वचालित रूप से नहीं खेलना चाहते हैं, तो आपको वीडियो के लिए ऑटो प्ले अक्षम करने के लिए अपनी HTML फ़ाइल में कोड दर्ज करना होगा (मुझे लगता है कि आप जो HTML फाइलें प्रदर्शित कर रहे हैं, वे स्वयं हैं)।

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

<object width="160" height="144"> 
<param name="autoplay" value="false"> 

<embed src="sample.mov" width="160" height="144" 
autoplay="false" controller="false" 
</embed> 

</object> 
+0

नहीं, तुमने मुझे गलत किया है। सबसे पहले मैंने केवल वेबव्यू के साथ प्रयास किया जो वीडियो को स्वचालित रूप से चला रहा है। फिर मैंने एचटीएमएल – Perseus

+0

का उपयोग करने की योजना बनाई, मैं वेबव्यू में वीडियो खेलना चाहता हूं और उपयोगकर्ता भी play बटन पर क्लिक करने के बाद वीडियो शुरू करना चाहिए। – Perseus

+0

यदि UIWebView पर आप जो URL/html फ़ाइल चला रहे हैं वह आपका नहीं है, तो आपने ऑटोप्ले को अक्षम करने के लिए viewDidLoad अनुभाग में कोड जोड़ दिया है। यदि आप स्थानीय फाइलें खेलना चाहते हैं, तो आपको अपनी खुद की एचटीएमएल फाइल बनाना होगा और सेटिंग को आंतरिक रूप से कॉन्फ़िगर करना होगा। यदि आप किसी वेबपृष्ठ पर vid प्रदर्शित करने की योजना बना रहे हैं, तो आपके UIWebView को HTML फ़ाइल (अनुशंसित) का उपयोग करना चाहिए, क्योंकि "HTML का उपयोग करने की योजना बनाई" के साथ आपका क्या मतलब है, इसके बारे में भी सुनिश्चित नहीं है। –

1

अगर आप अपने आवेदन के बंडल को .mp4 या संगत अन्य वीडियो जोड़ा, तो आप इस तरह अपने रास्ते तक पहुंच सकता है है;

[[NSBundle mainBundle] pathForResource:@"blalba" ofType:@"mp4"];

यह आप यूआरएल स्ट्रिंग देता है।

यदि आपके वीडियो आपके बंडल में नहीं हैं, तो या तो बंडल से कॉपी किया गया है या इंटरनेट से डाउनलोड किया गया है, तो आप इस तरह की निर्देशिका प्राप्त कर सकते हैं;

NSString *documentdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
NSString *tileDirectory = [documentdir stringByAppendingPathComponent:@"xxxx/Tiles"]; 
NSLog(@"Tile Directory: %@", tileDirectory); 

वीडियो के यूआरएल प्राप्त करने के बाद, आप इसे अपने वेब व्यू में डाल सकते हैं। लेकिन यह आईफोन के डिफ़ॉल्ट वीडियो प्लेयर में मुझे लगता है .. शुभकामनाएं ..

+0

मैं पहले से ही UIWebView में वीडियो चलाने में सक्षम हो सकता हूं। PLease अब मेरे अपडेट प्रश्न की जांच करें – Perseus

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