好吧,对于某些人来说,这似乎是一个简单的问题,但是我有点迷茫,仍然在学习。 因此,我正在学习在Andriod上编码,并且正在学习一些技术限制。就像两个生产者不能共享相同的曲面。
我正在使用FFMPEG构建电视稳定器。 当我按一下暂停时,我将从视频中拉出帧。
int currentPosition = myVideoView.getCurrentPosition();
Bitmap bmFrame = mediaMetadataRetriever
.getFrameAtTime(currentPosition * 1000);
现在,这将为我提供一个位图以在其上做画布。
现在这是我的问题,我有点迷失了。
我的表面正在播放视频,并在抓取框架时暂停。表面上不能有两个生产者是我的理解。因此,当视频保持暂停并保持位置不变时,如何使用位图上的绘画/画布功能显示位图并在其上进行绘制。
我知道这是可能的,但我不知道它是怎么做到的。
这是完成项目的最后一步,因为一旦知道位置,位图并且知道了画布/绘画,我就知道如何将它们全部放到FFMPEG上。
答案 0 :(得分:0)
您可以在视频表面上覆盖另一个表面,在其中绘制所需的内容。 您可以通过将FrameLayout(也可以使用Relative或ConstraintLayout)与两个孩子一起使用来实现这一点,就像这样:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
这样,您将进入ImageView并且videoView不会受到影响。