为视频流实现浮动视图
Posted
技术标签:
【中文标题】为视频流实现浮动视图【英文标题】:Implement Floating View for video streaming 【发布时间】:2016-07-27 14:33:07 【问题描述】:我想实现FloatingView
。这使得 Activity 调整大小和可拖动(如下图所示)。我也看到了这个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;
编辑:不是draggable panel,因为在这个应用程序中,如果用户转到另一个活动视频没有被中断并且仍在播放。
【问题讨论】:
您好,很抱歉这个愚蠢的问题,但是当您说“无法继续播放视频”时,究竟是什么意思?是不是不能“流畅”看视频? @jos 正如您在 Gif 图像视频中看到的那样,视频没有停止(或中断)。当调整活动大小时不需要调用 setOnPreparedListener. 【参考方案1】:您想要实现的是Picture in Picture,类似于 YouTube 应用所做的。
自 android N 起,Android 正式在电视上支持此功能。但对于移动设备,您可以使用 Draggable Panel library。
【讨论】:
谢谢,但是 Draggable 面板不起作用,因为它绑定到它的活动,当你去另一个活动时,可拖动的被破坏。 这就是我们使用 Fragments 的原因,我的朋友 :) 这是你认为是片段的应用程序链接? play.google.com/store/apps/details?id=tv.perception.android.aio 这很难说。但如果我是你,我会使用 Fragments 来完成它。我确信图书馆的自述文件已经充分解释了如何设置它。 我反编译了 APK 我确定它是一个服务 ;)以上是关于为视频流实现浮动视图的主要内容,如果未能解决你的问题,请参考以下文章