BrightcoveVideoView
。了解佈局
在使用Brightcove Native SDK for Android之前,最好了解如何在Android應用程序中管理和自定義佈局。
首先查看Android開發人員用戶界面指南。
覆蓋佈局參數
的BrightcoveVideoView
是的父類BrightcoveExoPlayerVideoView
。
如果您要添加一個View
到BrightcoveVideoView
,那麼您需要覆蓋setLayoutParams()
的方法View
孩子僅應用對佈局有意義的佈局參數View
兒童。
這是一個例子setLayoutParams()
方法:
@Override
public void setLayoutParams(ViewGroup.LayoutParams layoutParams) {
Log.v(TAG, "setLayoutParams: " + layoutParams);
super.setLayoutParams(layoutParams);
if (layoutParams != null) {
int childCount = getChildCount();
FrameLayout.LayoutParams frameLayoutParams =
new FrameLayout.LayoutParams(layoutParams.width, layoutParams.height);
frameLayoutParams.gravity = Gravity.CENTER;
for (int i = 0; i < childCount; i++) {
getChildAt(i).setLayoutParams(frameLayoutParams);
}
}
}
這允許SurfaceView
和ImageView
獲取為指定的佈局參數BrightcoveVideoView
。
儘管可以僅將佈局參數應用於SurfaceView
和ImageView
孩子,當其他孩子在BrightcoveVideoView
對其佈局參數進行了更新。
Brightcove建議覆蓋setLayoutParams()
在裡面LinearLayout
子,使其穿過寬度,但高度和重力保持不變。
何時添加視圖
應用程序添加一個View
在裡面BrightcoveExoPlayerVideoView
可以根據將目標添加到播放器前面的目標而有所不同。例如,您可以使用視圖來添加/刪除TextViews
以顯示字幕,或在App中為控制器添加佈局。
的BrightcoveExoPlayerVideoView
變體從BaseVideoView
擴展了Android FrameLayout
。這意味著您可以將視圖添加到BrightcoveExoPlayerVideoView
用同樣的方式FrameLayout
。
這是一個Android應用程序的activity_main.xml文件中的示例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<com.brightcove.player.view.BrightcoveExoPlayerVideoView
android:id="@+id/brightcove_video_view"
android:layout_width="match_parent"
android:layout_height="280dp"
android:layout_gravity="center_horizontal|top">
<RelativeLayout
android:id="@+id/rl_elephant"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|bottom"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=“HELLO WORLD”
android:textColor="@color/white"
>
</RelativeLayout>
</com.brightcove.player.view.BrightcoveExoPlayerVideoView>
</LinearLayout>