2013-02-13 45 views
8

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

viewpager.setOnPageChangeListener(new OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int position) { 

       if(position!=mAdapter.getCount()-1){ 
        MultimediaFragment frag = (MultimediaFragment)mAdapter.getItem(position+1); 
        frag.onPageIsChanged(); 
       } 

       if(position != 0){ 
        MultimediaFragment frag = (MultimediaFragment)mAdapter.getItem(position-1); 
        frag.onPageIsChanged(); 
       } 


      } 
onPageIsChanged साथ

(मेरी खुद की एक विधि है जो बंद करो और नियंत्रण को छिपाने के लिए मेरी videoview विशेषता बताने की कोशिश करता जा रहा है:

public void onPageIsChanged() { 
     if(mVideoView!=null){ 
      if(mVideoView.isPlaying()){ 
       mVideoView.stopPlayback(); 
      } 
      mMedia.hide(); 
     } 
    } 

समस्या मैं इस तरह ViewPager के लिए एक OnPageChangeListener को लागू करने की कोशिश की यह है कि mVideoView हमेशा शून्य है, भले ही यह पृष्ठभूमि पर चल रहा हो। यह videoview खंड के OnCreateView विधि पर बनाया गया है, लेकिन यह मेरे mVideoView फ़ील्ड पर सेट नहीं होना चाहिए जब तक कि टुकड़ा नष्ट नहीं हो जाता?

+0

हाय वहाँ, मैं पूछना चाहता हूं कि क्या आप इस समस्या को हल करते हैं, क्या आप मुझे कुछ मदद दे सकते हैं? –

उत्तर

10

मैं विधि अधिभावी द्वारा इस हल:

void setUserVisibleHint(boolean isVisibleToUser) 

कि यदि उचित तरीके से हालांकि पता नहीं है।

+1

हाय वहाँ, मुझे कुछ मदद चाहिए !, मैं वीडियो को रोकने के लिए setUserVisibleHint का उपयोग करता हूं जब यह दिखाई नहीं दे रहा है, लेकिन जब वीडियो पेज पर वापस आ जाता है तो वीडियो नहीं चलाता है, मैं इस समस्या को कैसे हल कर सकता हूं ?? –

+0

यह समस्या का समाधान कैसे करता है? और आप इसे कहां सेट करते हैं? प्लस जब मैं पेजर को स्वाइप करता हूं तो इस विधि को कभी भी कॉल नहीं किया जाता है। – JPM

2

सबसे अधिक संभावना है कि आपका mAdapter.getItem हर बार एक नया टुकड़ा बना रहा है। इससे वीडियो दृश्य हमेशा शून्य हो जाएगा।

public class MyAdapter extends FragmentStatePagerAdapter { 
    SparseArray<Fragment>fragments = new SparseArray<Fragment>(); 
    public MyAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public int getCount() { 
     return contents.size(); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     Fragment frag = fragments.get(position); 
     Bundle args = new Bundle(); 
     if(frag != null){ 
      return frag; 
     } 
     fragments.put(position, frag); 
     return frag; 
    } 
} 
5

आपको एक टुकड़े में setUserVisibleHint विधि को ओवरराइड करना है जहां आप वीडियो चलाते हैं।

public void setUserVisibleHint(boolean isVisibleToUser) 
    {  
    super.setUserVisibleHint(isVisibleToUser);       
    if (this.isVisible()) 
    {    
     if (!isVisibleToUser) // If we are becoming invisible, then... 
     { 
      //pause or stop video 
     } 

     if (isVisibleToUser) // If we are becoming visible, then... 
     {        
      //play your video    
     } 
    } 
    }