2013-03-28 10 views
10

कृपया मदद करें, ऑफ़लाइन मोड के लिए कच्चे फ़ोल्डर से एंड्रॉइड डिवाइस में वीडियो कैसे चलाएं?Android डिवाइस के साथ कच्चे फ़ोल्डर से वीडियो कैसे चलाएं?

सफल उदाहरण 1: मैं नीचे दिए गए कोड का उपयोग करके एसडीकार्ड से वीडियो चला सकता हूं।

Intent intent = new Intent(Intent.ACTION_VIEW); 
String type = "video/mp4"; 
Uri uri = Uri.parse("file:///sdcard/test.mp4"); 
intent.setDataAndType(uri, type); 
startActivity(intent); 

विफल example2: प्रश्न: मैं रेस/कच्चे फ़ोल्डर में test.mp4 डाल सकते हैं?

Intent intent = new Intent(Intent.ACTION_VIEW); 
String type = "video/mp4"; 
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.taipei); 
intent.setDataAndType(uri, type); 
startActivity(intent); 

किसी को भी मेरी मदद कर सकते है? कृप्या।

उत्तर

3

चेक इस समाधान How to play videos in android from assets folder or raw folder?

VideoView videoHolder = new VideoView(this); 
//if you want the controls to appear 
videoHolder.setMediaController(new MediaController(this)); 
Uri video = Uri.parse("android.resource://" + getPackageName() + "/" 
+ R.raw.your_raw_file); //do not add any extension 
//if your file is named sherif.mp4 and placed in /raw 
//use R.raw.sherif 
37

कॉपी अपने प्रोजेक्ट की रेस/कच्चे फ़ोल्डर में वीडियो। Res फ़ोल्डर के तहत कच्चे फ़ोल्डर बनाएँ। यह एक समर्थित प्रारूप (3 जीपी, डब्लूएमवी, एमपी 4) में होना चाहिए और इसके नाम पर निम्न केस, न्यूमेरिक्स, अंडरस्कोर और डॉट्स के साथ नामित होना चाहिए: video_file.mp4।

VideoView view = (VideoView)findViewById(R.id.videoView); 
String path = "android.resource://" + getPackageName() + "/" + R.raw.video_file; 
view.setVideoURI(Uri.parse(path)); 
view.start(); 

अपनी xml फ़ाइल में वीडियो देखें।

+0

हाय, मैं अपने कोड का उपयोग करके निम्न समस्या हो रही है: MediaPlayer: मीडिया प्लेयर setDataSource IOException happend बनाने के लिए करने में असमर्थ: –

+0

आपको बहुत बहुत धन्यवाद !!! * getPackageName() * मुझे बचाया !!! – Pontios

+1

मेरे पास पहले से ही 'res/raw' के अंतर्गत फ़ोल्डर है लेकिन अगर मेरे पास अलग-अलग संकल्पों में मेरा वीडियो है तो क्या होगा? यानी 320x240, 640x480, 1280x720 आदि .. मैं प्रत्येक के लिए अलग फ़ोल्डर कैसे बना सकता हूं? – Johny

2
// To get files from any resource folder (eg: raw, drawable, etc.) 
// Use the resource id 
int rawId = getResources().getIdentifier(file_name_without_extension, "raw", getPackageName()); 

// URI formation 
String path = "android.resource://" + getPackageName() + "/" + rawId; 

// Set the URI to play video file 
videoView.setVideoURI(Uri.parse(path)); 
+0

आपको अपने कोड के साथ कुछ स्पष्टीकरण प्रदान करना चाहिए क्योंकि कोड केवल तभी फेंक दिया जाता है जब तक कि आत्म-स्पष्टीकरण के लिए पर्याप्त टिप्पणी न हो। –

0

मैंने गतिशील वीडियो नामों के लिए इसके साथ संघर्ष किया। समाधान है कि मेरे लिए काम किया था:

//Somewhere set the video name variable 
String video+name="myvideo"; 
//setup up and play video 

VideoView videoView=(VideoView)findViewById(R.id.video); 
videoView.setVisibility(View.VISIBLE); 
String uriPath = "android.resource://"+getPackageName()+"/raw/"+ video_name; 
Uri UrlPath=Uri.parse(uriPath); 
MediaController mediaController = new MediaController(this); 
mediaController.setAnchorView(videoView); 
videoView.setMediaController(mediaController); 
videoView.setVideoURI(UrlPath); 

videoView.setOnPreparedListener(new OnPreparedListener() { 
     public void onPrepared(MediaPlayer mediaPlayer) { 
      if (position == 0) { 
       try{ 
        videoView.requestFocus(); 
        videoView.start(); 
       }catch (Exception e){ 
        System.out.printf("Error playing video %s\n", e); 
       } 
      }else{ 
       videoView.pause(); 
      } 

     } 
}); 

और एक्सएमएल

<VideoView android:layout_width="300dp" 
    android:id="@+id/video" 
    android:layout_height="300dp" 
    android:orientation="horizontal" 
    android:layout_gravity="center" 
    android:keepScreenOn="true" 
    /> 
1

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

जब भी आप रॉ फ़ोल्डर के तहत खेलते हैं, तो वीडियो प्लेयर में वीडियोज़िव या निर्मित एक हैंडलर की आवश्यकता होती है जो निष्कर्ष निकालती है कि आपके रॉ फ़ोल्डर में जो कुछ भी डाला गया है उसे एंड्रॉइड ओएस द्वारा समर्थित/पठनीय किया जाना चाहिए।

हालांकि, थ्रेड स्टार्टर यहां चाहता है कि उसकी रॉ फाइलें, किसी तीसरे पक्ष के मीडिया प्लेयर का उपयोग करके खेली जाएंगी।

0

यह समाधान वास्तव में आपकी इच्छित चीज़ों में आपकी सहायता करेगा।

VideoView myVideo; 
private MediaController media_control; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    myVideo = (VideoView) findViewById(R.id.playVideo); 

    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bootanimation_nexus); 

    media_control = new MediaController(this); 

    myVideo.setMediaController(media_control); 

    myVideo.setVideoURI(uri); 

    myVideo.start(); 

} 
+0

bootanimationnexus मेरे कच्चे फ़ोल्डर के अंदर वीडियो का नाम है –

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