好吧这对某些人来说似乎是一个简单的问题,但我有点迷失并仍在学习。所以我正在学习编写andriod并且我正在学习一些技术限制。像2个生产者不能共享同一个表面。
我正在使用FFMPEG构建一个telestrator。当我按下暂停时,我将从视频中拉出帧。
int currentPosition = myVideoView.getCurrentPosition();
Bitmap bmFrame = mediaMetadataRetriever
.getFrameAtTime(currentPosition * 1000);
现在这将给我一个位图来制作画布。
现在这是我的问题,我有点迷失。
我的表面正在播放视频,并在抓取框架时暂停。表面上不能有两个生产者是我的理解。那么,当视频保持暂停并保持位置时,如何使用位图上的绘制/画布功能显示位图并在其上绘制。
我知道这是可能的,但我不明白它是如何完成的。
这是完成项目的最后一步,因为我知道如果我有位置,位图,我知道画布/油漆,如何将它们放在FFMPEG上。
您可以将视频表面覆盖在另一个视频表面上,您可以在其中绘制所需的内容。您可以通过使用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中,并且视频不会受到影响。