2016-07-27 9 views
7

के लिए फ़्लोटिंग व्यू लागू करें मैं FloatingView को कार्यान्वित करना चाहता हूं। जो गतिविधि का आकार बदलता है और खींचने योग्य (निम्नलिखित चित्र की तरह)। मैं यह thread भी देखता हूं और इसके आधार पर मैं अपना खुद का service बना देता हूं। (this & this लाइब्रेरीज़)वीडियो स्ट्रीमिंग

समस्या कार्यान्वयन के अनुसार है मैं वीडियो जारी नहीं रख सकता हूं और कभी-कभी स्क्रीन काले रंग में जाती है और कुछ भी प्रदर्शित नहीं होती है। मैं जानना चाहता हूं कि इसे संभालने का सही तरीका क्या है? वीडियो के बिना बाधित और खेलना जारी रखें। (मैं setOnPrepareListener की वजह से रुकावट नहीं जानते हों कि से बचने के?)

यहाँ मेरी कोड है:

public class FloatingStream extends Service implements FloatingViewListener { 


    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     if (mFloatingViewManager != null) { 
      return START_STICKY; 
     } 


     final DisplayMetrics metrics = new DisplayMetrics(); 
     final WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); 
     windowManager.getDefaultDisplay().getMetrics(metrics); 
     floatingServiceBinder = new FloatingServiceBinder(this); 
     final View rootView = LayoutInflater.from(this).inflate(R.layout.view_exoplayer, null, false); 
     final VideoView videoView = (VideoView) rootView.findViewById(R.id.video_view); 
     videoView.setVideoURI(Uri.parse(MY_URL)); 
     videoView.setOnPreparedListener(new OnPreparedListener() { 
      @Override 
      public void onPrepared() { 
       videoView.start(); 
      } 
     }); 

     mFloatingViewManager = new FloatingViewManager(this, this); 
     mFloatingViewManager.setFixedTrashIconImage(R.drawable.ic_play_circle_filled); 
     mFloatingViewManager.setActionTrashIconImage(R.drawable.ic_menu); 
     final FloatingViewManager.Options options = new FloatingViewManager.Options(); 
     mFloatingViewManager.addViewToWindow(rootView, options); 


     return START_REDELIVER_INTENT; 
    } 

} 

enter image description here

संपादित करें: यह इसलिए है क्योंकि इस एप्लिकेशन को उपयोगकर्ता दूसरे करने के लिए जाना है, तो में draggable panel नहीं है गतिविधि वीडियो बाधित नहीं है और अभी भी खेल रहा है।

+0

हाय, इस डमी प्रश्न के लिए खेद है, लेकिन जब आप कहते हैं कि आप "वीडियो जारी नहीं रख सकते" तो इसका क्या अर्थ है? क्या आप वीडियो को "सुचारु रूप से" नहीं देख सकते हैं? – jos

+0

@jos जैसा कि आप GIF छवि वीडियो में देखते हैं, बंद नहीं हुआ (या बाधित)। जब आकार बदलने की गतिविधि को ** setOnPreparedListener ** कॉल करने की आवश्यकता नहीं है। – Amir

उत्तर

1

जो आप प्राप्त करने का प्रयास कर रहे हैं वह Picture in Picture है, जो यूट्यूब ऐप के समान है।

एंड्रॉइड आधिकारिक तौर पर टीवी के लिए इसका समर्थन करता है, एंड्रॉइड एन के बाद से मोबाइल उपकरणों के लिए, आप Draggable Panel library का उपयोग कर सकते हैं।

+0

धन्यवाद लेकिन ड्रैगगेबल पैनल काम नहीं करता है क्योंकि यह इसकी गतिविधि से जुड़ा हुआ है और जब आप किसी अन्य गतिविधि पर जाते हैं तो ड्रैगगेबल नष्ट हो जाता है। – Amir

+0

यही कारण है कि हम फ्रैगमेंट्स का उपयोग करते हैं, मेरे दोस्त :) – Suleiman19

+0

यहां एप्लिकेशन का एक लिंक है जो आपको लगता है कि यह टुकड़ा है? https://play.google.com/store/apps/details?id=tv.perception.android.aio – Amir

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