两个生产者一面

问题描述 投票:0回答:1

好吧这对某些人来说似乎是一个简单的问题,但我有点迷失并仍在学习。所以我正在学习编写andriod并且我正在学习一些技术限制。像2个生产者不能共享同一个表面。

我正在使用FFMPEG构建一个telestrator。当我按下暂停时,我将从视频中拉出帧。

 int currentPosition = myVideoView.getCurrentPosition(); 

            Bitmap bmFrame = mediaMetadataRetriever
                    .getFrameAtTime(currentPosition * 1000);

现在这将给我一个位图来制作画布。

现在这是我的问题,我有点迷失。

我的表面正在播放视频,并在抓取框架时暂停。表面上不能有两个生产者是我的理解。那么,当视频保持暂停并保持位置时,如何使用位图上的绘制/画布功能显示位图并在其上绘制。

我知道这是可能的,但我不明白它是如何完成的。

这是完成项目的最后一步,因为我知道如果我有位置,位图,我知道画布/油漆,如何将它们放在FFMPEG上。

android surface producer
1个回答
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中,并且视频不会受到影响。

© www.soinside.com 2019 - 2024. All rights reserved.