最近我在android中学习了webrtc。
我想单击SurfaceView A 使其全屏,另一个SurfaceView B 变小,或者单击 B。但我发现在运行时很难更改两个不同表面视图的 z 顺序。
这是我的布局
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/app_bar_main">
<org.webrtc.PercentFrameLayout
android:id="@+id/remote_video_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<org.webrtc.SurfaceViewRenderer
android:id="@+id/remote_video_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</org.webrtc.PercentFrameLayout>
<org.webrtc.PercentFrameLayout
android:id="@+id/local_video_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<org.webrtc.SurfaceViewRenderer
android:id="@+id/local_video_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:keepScreenOn="true" />
</org.webrtc.PercentFrameLayout>
PercentFrameLayout 是一个 ViewGroup 子类,用于测量屏幕的百分比。
我曾尝试在运行时使用 setZOrderMediaOverlay 但失败了。我发现 SDK 说
请注意,这必须在表面视图的包含窗口附加到窗口管理器之前设置。
那么这是否意味着我不能在运行时更改SurfaceView z-order?或者有什么办法破解它?
对不起,我的英语不好。
编辑 1 SurfaceViewRender和
PercentFrameLayout都来自库,SurfaceViewRender是SurfaceView的子类。