Я хочу реализовать FloatingView
. Которые изменяют размер и перетаскивают Activity (как показано на рисунке). Я также вижу это thread и на основе этого создаю свой собственный service
. (См. Также thisthis)Реализация плавающего изображения для потоковой передачи видео
Проблема В соответствии с осуществлением я не могу продолжить видео, а также иногда экран переходит в черный цвет и ничего не отображается. Я хочу знать, каков правильный способ справиться с этим? Без видео прерывается и продолжает играть. (Я знаю, что прерывание из-за 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;
}
}
Edit: это не draggable panel, потому что в этом приложении, если пользователь перейти к другому видео активности не прерывается и продолжает воспроизводиться.
Привет, извините за этот фиктивный вопрос, но когда вы говорите, что вы «не можете продолжать видео», что это значит? Разве вы не можете смотреть видео «плавно»? – jos
@jos Как вы видите, в видео Gif видео не останавливается (или прерывается). когда операция изменения размера не требуется вызывать ** setOnPreparedListener **. – Amir