2012-11-02 39 views
14

मैं एंड्रॉइड के लिए नया हूं और एक साथ वीडियो को एक साथ खेलना चाहता हूं ताकि यह निरंतर वीडियो जैसा दिखता हो।वीडियो को एक साथ एक साथ आसानी से चलाएं [बिना किसी दूसरे से दृश्यमान स्विचिंग के]

मुझे यह लिंक स्टैक ओवरफ्लो पर बहुत उपयोगी पाया गया है। how-to-play-videos-one-after-another-simultaneously जब मैं इसका उपयोग कर रहा हूं तब भी मैं एक वीडियो के बाद एक वीडियो चला सकता हूं, लेकिन में एक सेगमेंट से अन्य परिणामों में स्विच करने से अगले एक खेलने से पहले वीडियो को रोक दें। तो यह इस वजह से निरंतर वीडियो की तरह दिखता नहीं है।

कृपया मेरी समस्या का समाधान करने में मेरी सहायता करें। यहां मेरा कोड है।

public class VideoActivity extends Activity{ 

    VideoView videoView, videoView1; 
    MediaController mc; 
    int count = 0; 

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

     videoView = (VideoView) findViewById(R.id.VVSimpleVideo); 
     setup(); 
     videoView.setOnCompletionListener(completionListener); 

    } 

    public void setup() { 

     String _path = "/mnt/sdcard/Video/"+count+".mp4"; 
     videoView.setVideoPath(_path); 
     videoView.start(); 
     count++; 
    } 


    private OnCompletionListener completionListener=new OnCompletionListener() { 

     public void onCompletion(MediaPlayer mp) { 
      mp.stop(); 
      setup(); 
     } 
    }; 

} 

अब मैं VideoView वर्ग के दो उदाहरणों लेने से खेलने के लिए कोशिश की है। पहले खिलाड़ी द्वारा दूसरे वीडियो और दूसरे खिलाड़ी द्वारा दूसरे वीडियो को चलाने का प्रयास किया, पहले खिलाड़ी से तीसरा वीडियो और दूसरे खिलाड़ी से चौथा वीडियो और इसी तरह।

लेकिन फिर भी मैं आसानी से वीडियो चलाने में सक्षम नहीं हूं और एक ही समस्या मौजूद है।

यहां डबल कोड वाला मेरा कोड है।

public class VideoActivity extends Activity{ 

    VideoView videoView, videoView1; 
    MediaController mc; 
    int count = 0; 
    String _path; 
    String _path1; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_video); 

     videoView = (VideoView) findViewById(R.id.VVSimpleVideo); 
     _path = "/mnt/sdcard/Video/"+count+".mp4"; 
     videoView.setVideoPath(_path); 
     videoView.start(); 
     //setup(); 
     videoView.setOnCompletionListener(completionListener); 

     videoView1 = (VideoView) findViewById(R.id.VVSimpleVideo); 

     videoView1.setOnCompletionListener(completionListener1); 
     count++; 
     _path1 = "/mnt/sdcard/Video/"+count+".mp4"; 
     videoView1.setVideoPath(_path1); 
    } 

    public void setup() { 


     videoView.start(); 
     count++; 
     _path1 = "/mnt/sdcard/Video/"+count+".mp4"; 
     videoView1.setVideoPath(_path1); 
    } 

    public void setup1() { 


     videoView1.start(); 

     count++; 
     _path = "/mnt/sdcard/Video/"+count+".mp4"; 
     videoView.setVideoPath(_path); 
    } 

    private OnCompletionListener completionListener=new OnCompletionListener() { 

     public void onCompletion(MediaPlayer mp) { 
      mp.stop(); 
      setup1();  

     } 
    }; 

    private OnCompletionListener completionListener1=new OnCompletionListener() { 

     public void onCompletion(MediaPlayer mp) { 
      mp.stop(); 

      setup();   

     } 
    }; 

} 
+0

हाय पिकू, मुझे भी इसी तरह का मुद्दा है। क्या आप न्यूनतम "ब्लैक स्क्रीन स्विच" समय प्राप्त करने में सक्षम थे? – codeshark

उत्तर

2

आप वास्तव में दो VideoViews बिल्कुल, आप दोनों VideoView और VideoView1R.id.VVSimpleVideo को बताए रहे हैं, ताकि वे एक ही वस्तु नहीं प्रयोग कर रहे हैं। इसका मतलब यह है कि हर बार जब आप onCompletion हिट करते हैं, तो यह एक को स्थापित करने और दूसरे को चलाने के बजाय, फिर से सेट हो जाता है।

अपने लेआउट में दो अलग VideoView ऑब्जेक्ट्स बनाने का प्रयास करें। एक को VISIBLE पर सेट करें और एक सेट GONE/INVISIBLE पर सेट करें, और जब आप बदलना चाहते हैं तो स्वैप करें।

मैं गारंटी नहीं दे सकता कि यह इसे "निर्बाध" बना देगा, हालांकि, यह लगभग असंभव कार्य है। यहां तक ​​कि अधिकांश डेस्कटॉप मीडिया प्लेयर वास्तव में निर्बाध नहीं हैं। यह सिर्फ इस बात पर निर्भर करता है कि आपके पास सीमों के लिए क्या सहनशीलता है।

+0

हाय Geobits, उत्तर के लिए धन्यवाद। लेआउट में दो अलग-अलग वीडियो व्यू का उपयोग करने के लिए सही करने के लिए धन्यवाद। लेकिन यह गोन/अविश्वसनीय होने पर दूसरा शुरू करने में असमर्थ है। जब भी इसकी बारी आती है तो हर बार केवल पहला खिलाड़ी काम करता है। फिर मैंने वीडियो व्यू.सेट दृश्यता (0) द्वारा फ्लाई पर दृश्यता सेट करने का प्रयास किया है; मुझे संभावित मानों के रूप में दृश्यमान/गोन/अविश्वसनीय नहीं लगता है, इसलिए 0. अभी भी दूसरे वीडियो से फ़्रेम दिखाने में सक्षम नहीं है, हालांकि संगीत आ रहा है। – piku

+0

हाय मैं \t वीडियो दृश्य 1.setVisibility (View.VISIBLE) पर फ्लाई पर दृश्यता को बदलने में सक्षम हूं, लेकिन जब यह स्विच हो रहा है तो यह कुछ ब्लैकआउट दिखाता है, इसलिए खेल आसान नहीं है। – piku