2016-07-27 3 views
7

FloatingView을 구현하고 싶습니다. Activity를 크기 조정하고 드래그 할 수있게합니다. 나는 또한이 thread을보고 그것에 기초하여 내 자신을 만듭니다 service. (this & this 라이브러리비디오 스트리밍을위한 부동 뷰 구현

문제는 구현에 따라 비디오를 계속 진행할 수 없으며 때로는 화면이 검은 색으로 표시되고 아무 것도 표시되지 않습니다. 이 문제를 처리하는 올바른 방법이 무엇인지 알고 싶습니다. 비디오를 중단하지 않고 재생을 계속합니다. (I 때문에 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 이미지 동영상에서 보시 듯 멈추지 않습니다. resize 액티비티가 ** setOnPreparedListener **를 호출 할 필요가 없을 때. – Amir

답변

1

달성하고자하는 것은 Picture in Picture이며 YouTube 앱과 유사합니다.

Android는 Android N부터 공식적으로 TV를 지원합니다. 그러나 휴대 기기의 경우 Draggable Panel library을 사용할 수 있습니다.

+0

고마워.하지만 드래그 가능한 패널은 그것의 액티비티에 바인딩되어 있고 다른 액티비티로 드래그 할 수 없기 때문에 작동하지 않는다. – Amir

+0

우리가 Fragments, 내 친구를 사용하는 이유는 다음과 같습니다. – Suleiman19

+0

여기 응용 프로그램 링크가 있습니다. https://play.google.com/store/apps/details?id=tv.perception.android.aio – Amir

관련 문제