2016-07-27 45 views
7

FloatingView'u uygulamak istiyorum. Aktiviteyi yeniden boyutlandırma ve sürükleme özelliği (aşağıdaki Resim gibi). Ben de bu thread'u görüyorum ve kendi service'umu kendim yarattığımı temel aldım. (Ayrıca bkz. this & this kütüphaneler)Video akışı için Yüzer Görünüm Uygulaması

Sorun, uygulamaya bağlı olduğumdur. Devam edemiyorum Video ve ayrıca bazen Ekran siyaha gider ve hiçbir şey görüntülenmez. Bunu halletmenin doğru yolu nedir bilmek isterim? Video olmadan kesildi ve oynatmaya devam ediyor. (Çünkü setOnPrepareListener kesintiye biliyorum ama bu önlemek nasıl?) İşte

benim kodudur:

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

Düzenleme: çünkü kullanıcı başka bir yere gitmemiz bu uygulamadaki değil draggable panel var etkinlik videosu kesintiye uğramadı ve hala oynatılıyor.

+0

Merhaba, bu aptal soru için üzgünüm, ama "videoya devam edemiyor" dediğinizde tam olarak ne anlama geliyor? Videoyu "düzgünce" izleyemez misin? – jos

+0

@jos Gif görüntüsünde gördüğünüz gibi video durdurulamadı (veya kesintiye uğradı). yeniden boyutlandırıldığında etkinlik ** setOnPreparedListener ** araması gerekmez. – Amir

cevap

1

Kazanmaya çalıştığınız şey, YouTube uygulamasının yaptığı gibi, Picture in Picture.

Android, Android N'den beri Android için bunu resmi olarak desteklemektedir. Ancak mobil aygıtlar için Draggable Panel library'u kullanabilirsiniz.

+0

Teşekkürler Ancak Sürüklenebilir panel, etkinliğe bağlı olduğu ve başka bir etkinliğe sürüklendiğinizde yok edilebilecek şekilde çalışmaz. – Amir

+0

Bu yüzden Fragments kullanıyoruz, arkadaşım :) – Suleiman19

+0

İşte bu uygulamanın bir parçası olduğunu düşündüğünüz bir bağlantı mı? https://play.google.com/store/apps/details?id=tv.perception.android.aio – Amir