2010-01-06 11 views
8

क्या यह बॉक्स से या लाइब्रेरी के माध्यम से संभव है?क्या एंड्रॉइड ऐप में .flv वीडियो फ़ाइलों को चलाने का कोई तरीका है?

+0

एक कामकाज है जो आपको स्थानीय संपत्ति संसाधन से खेलने की अनुमति देगा, कृपया एक पूर्ण समाधान के लिए इस तरह के प्रश्न का मेरा उत्तर पढ़ें: http://stackoverflow.com/questions/6596243/problem-to-load -flv-video-in-webview/6855609 # 6855609 – Merlin

उत्तर

2

नहीं, यह संभव नहीं है। एंड्रॉइड पर मीडिया प्लेबैक प्रदान करने वाली ओपनकोर मीडिया लाइब्रेरी .flv फ़ाइलों का समर्थन नहीं करती है।

आप समर्थित मीडिया प्रारूपों here की एक सूची पा सकते हैं। ये प्रारूप जेनेरिक एंड्रॉइड पर समर्थित हैं। उसी पृष्ठ पर आपको कुछ अतिरिक्त प्रारूप मिलेगा जो टी-मोबाइल जी 1 का समर्थन करता है।

बेशक, विशिष्ट उपकरणों पर अतिरिक्त मीडिया प्रारूपों के लिए समर्थन संभव हो सकता है। लेकिन यह डिवाइस से डिवाइस में भिन्न हो सकता है।

+0

एचटीसी हीरो में एक अंतर्निहित फ्लैश रनटाइम है, हालांकि यह स्टैंडअलोन एफएलवी फाइल नहीं चलाता है। –

+0

नेक्सस वन के पास भी फ्लैश 10.1 है, लेकिन मुझे नहीं पता कि यह स्टैंडअलोन एफएलवी फाइलों को चला सकता है या नहीं। – CommonsWare

+0

यह गलत है। हाँ यह संभव है। मैंने एक ऐसी कंपनी के लिए काम किया जिसने एफएलवी का उपयोग करके आईओएस, एंड्रॉइड और वेब ब्राउजर में अपने हार्डवेयर के लिए स्ट्रीमिंग एचडी वीडियो सॉफ्टवेयर बनाया। दुर्भाग्य से, कोड साझा नहीं कर सकता, लेकिन मैं कह सकता हूं कि यह निश्चित रूप से करने योग्य है। – jungledev

3

आप वेबव्यू के अंदर फ्लैश प्लगइन का उपयोग करके FLV खेल सकते हैं। यहां देखें: http://www.synesthesia.it/playing-flash-flv-videos-in-android-applications

अक्सर जब आप किसी मोबाइल डिवाइस में वेब सामग्री प्रदर्शित करने वाला ऐप बनाते हैं तो आपको FLV वीडियो से निपटना होगा, फिर भी वेब में व्यापक रूप से उपयोग किया जाता है (जब तक कि HTML5 दुनिया पर शासन नहीं करेगा)। सबसे अच्छी बात यह है कि उन्हें कुछ कनवर्टर (जैसे ffmpeg) के साथ परिवर्तित करना है, लेकिन यदि आप मूल वीडियो तक पहुंच नहीं देते हैं या किसी अन्य कारण से आप किसी अन्य उपयुक्त प्रारूप में रूपांतरण नहीं कर सकते हैं, तो आप यहां एक पा सकते हैं एंड्रॉइड एप्लिकेशन में फ्लैश एफएलवी वीडियो को एम्बेड और प्ले करने के तरीके पर त्वरित ट्यूटोरियल।

यह वेबव्यू, एफएलवी खेलने में सक्षम एक एसडब्ल्यूएफ प्लेयर और निश्चित रूप से एंड्रॉइड के लिए फ्लैश प्लगइन स्थापित करने के द्वारा किया जाता है।

सबसे पहले, एक WebView के साथ एक लेआउट एक्सएमएल, इस प्रकार बना:

package it.synesthesia.flvplayer; 

import java.lang.reflect.InvocationTargetException; 
import java.lang.reflect.Method; 
import java.net.URLEncoder; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebView; 

public class ViewVideo extends Activity { 

    WebView webView; 
    String htmlPre = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"></head><body style='margin:0; pading:0; background-color: black;'>"; 
    String htmlCode = 
      " <embed style='width:100%; height:100%' src='http://www.platipus.nl/flvplayer/download/1.0/FLVPlayer.swf?fullscreen=true&[email protected]@' " + 
      " autoplay='true' " + 
      " quality='high' bgcolor='#000000' " + 
      " name='VideoPlayer' align='middle'" + // width='640' height='480' 
      " allowScriptAccess='*' allowFullScreen='true'" + 
      " type='application/x-shockwave-flash' " + 
      " pluginspage='http://www.macromedia.com/go/getflashplayer' />" + 
      ""; 
    String htmlPost = "</body></html>"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.view_video); 

     webView = (WebView)findViewById(R.id.webview); 

     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setAllowFileAccess(true); 
     webView.getSettings().setPluginsEnabled(true); 
     webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); //thanks Patrick! 

     htmlCode = htmlCode.replaceAll("@[email protected]", video_link); 
     webView.loadDataWithBaseURL("fake://fake/fake", htmlPre+htmlCode+htmlPost, "text/html", "UTF-8", null); 
    } 




    @Override 
    protected void onPause(){ 
     super.onPause(); 

     callHiddenWebViewMethod("onPause"); 

     webView.pauseTimers(); 
     if(isFinishing()){ 
      webView.loadUrl("about:blank"); 
      setContentView(new FrameLayout(this)); 
     } 
    } 

    @Override 
    protected void onResume(){ 
     super.onResume(); 

     callHiddenWebViewMethod("onResume"); 

     webView.resumeTimers(); 
    } 

    private void callHiddenWebViewMethod(String name){ 
     // credits: http://stackoverflow.com/questions/3431351/how-do-i-pause-flash-content-in-an-android-webview-when-my-activity-isnt-visible 
     if(webView != null){ 
      try { 
       Method method = WebView.class.getMethod(name); 
       method.invoke(webView); 
      } catch (NoSuchMethodException e) { 
       Lo.g("No such method: " + name + e); 
      } catch (IllegalAccessException e) { 
       Lo.g("Illegal Access: " + name + e); 
      } catch (InvocationTargetException e) { 
       Lo.g("Invocation Target Exception: " + name + e); 
      } 
     } 
    } 

} 

कुछ स्पष्टीकरण:

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> 
    
    <WebView android:layout_width="fill_parent" android:id="@+id/webview" android:layout_height="fill_parent"></WebView> </LinearLayout> 
    

    तो, गतिविधि वर्ग बनाने के लिए, यहाँ एक उद्धरण है

  • जैसा कि कहा गया है, आपको एक एफएलवी प्लेयर की आवश्यकता है। मैंने महान & मुफ्त FLVPlayer http://www.platipus.nl/flvplayer/download/1.0/
  • FLV प्लेयर नेट पर किसी वेबसाइट पर रहना चाहिए। मैंने ऐप के/संपत्ति फ़ोल्डर में .swf डालने की कोशिश की और इसे वहां से बुलाया, लेकिन यह FLV वीडियो लोड करने में विफल रहा। अगर कोई इसे ठीक कर सकता है तो कृपया मुझे बताएं!
  • एचटीएमएलकोड में वीडियो को "फुलस्क्रीन" (वेबव्यू के पूर्ण आकार में भरने) के रूप में दिखाने के लिए कोड शामिल है।
  • callHiddenWebViewMethod बहुत महत्वपूर्ण है, अन्यथा जब गतिविधि अब और दिखाई नहीं देगी तब वीडियो चालू रहेगा (और ऑडियो भी)। इस के लिए क्रेडिट टिप्पणी में जुड़े sliseshare पोस्टर के लिए जाता है। धन्यवाद! चेतावनी: यह ज्यादातर एक हैक है! सावधान रहें, चीजें अपेक्षित काम नहीं कर सकतीं, या भविष्य में काम करना बंद कर सकती हैं। बीटीडब्ल्यू, यह मेरे लिए बहुत अच्छा काम किया।
+1

हालांकि यह प्रश्न का उत्तर दे सकता है, [यह बेहतर होगा] (http://meta.stackoverflow.com/q/8259) यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। –

+0

मैंने लेख में उत्तर को कॉपी-पेस्ट किया। – FrancescoR

+0

काम नहीं कर रहा है। – NarendraJi

1

vitamio आज़माएं। यह एक लाइब्रेरी है जो मध्यस्थ के समान है जिसे आपके प्रोजेक्ट में बहुत आसानी से आयात किया जा सकता है। केवल एक चीज यह है कि यह FLV वीडियो फ़ाइलों का भी समर्थन करता है।

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