BrightcoveVideoView
.Comprendre les mises en page
Avant de travailler avec le Brightcove Native SDK pour Android, il est conseillé de comprendre comment gérer et personnaliser les mises en page dans votre application Android.
Commencez par revoir le Interface utilisateur développeur Android guider.
Remplacement des paramètres de mise en page
Les BrightcoveVideoView
est la classe parente du BrightcoveExoPlayerVideoView
.
Si vous ajoutez un View
à la BrightcoveVideoView
, alors vous devez remplacer le setLayoutParams()
méthode sur le View
enfant d'appliquer uniquement les paramètres de mise en page qui ont du sens pour le View
enfant.
Voici un exemple avec le setLayoutParams()
méthode:
@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);
}
}
}
Cela permet au SurfaceView
et le ImageView
pour obtenir les paramètres de mise en page spécifiés pour le BrightcoveVideoView
.
Bien qu'il soit possible d'appliquer les paramètres de mise en page uniquement aux SurfaceView
et ImageView
enfants, il serait difficile pour d'autres enfants de réagir lorsque le BrightcoveVideoView
a ses paramètres de mise en page mis à jour.
Brightcove suggère de passer outre setLayoutParams()
dans le LinearLayout
enfant de sorte qu'il passe par la largeur, mais laisse la hauteur et la gravité inchangées.
Quand ajouter une vue
Applications pour ajouter un View
dans le BrightcoveExoPlayerVideoView
peut varier en fonction de l'objectif pour ajouter un objet devant le joueur. Par exemple, vous pouvez utiliser des vues pour ajouter/supprimer TextViews
pour afficher les légendes, ou pour ajouter une mise en page pour le contrôleur dans l'App.
Les BrightcoveExoPlayerVideoView
variante s'étend de la BaseVideoView
qui étend l'Android FrameLayout
. Cela signifie que vous pouvez ajouter une vue au BrightcoveExoPlayerVideoView
de la même manière que vous le feriez pour un FrameLayout
.
Voici un exemple dans le fichier activity_main.xml d'une application Android :
<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>