Aperçu
Les clients de Video Cloud ont accès à leurs données multimédias et métadonnées à partir de Video Cloud Studio. Les clients Brightcove Player fourniront l'URL de leur contenu multimédia.
Clients Cloud vidéo
En tant que client Video Cloud, vous pouvez accéder à vos données multimédias stockées dans Video Cloud Studio. Pour plus d'informations, consultez le Exemples de code Player SDK pour Android.
Récupération des données multimédia
Vous pouvez récupérer vos données de vidéo et de liste de lecture à partir de votre bibliothèque Video Cloud en utilisant l'API de lecture. Pour plus de détails sur l'API, consultez le Présentation de l'API de lecture document.
-
Utilisez le com.brightcove.player.edge.Catalogue méthodes de classe pour récupérer vos vidéos et listes de lecture à partir de l'API de lecture de Brightcove. Vos demandes peuvent fournir la vidéo/playlist
ID
ouReferenceID
. Ce service effectuera les demandes d'URL et analysera les données renvoyées. -
Pour cette demande, vous aurez besoin d'une clé de stratégie. Si vous n'êtes pas familiarisé avec les clés de stratégie, consultez le Présentation de l'API des règles document.
Voici un exemple de la façon de récupérer une vidéo en utilisant le
com.brightcove.player.edge.Catalog
classer:package com.brightcove.player.samples.exoplayer.basic; import android.os.Bundle; import android.util.Log; import com.brightcove.player.edge.Catalog; import com.brightcove.player.edge.VideoListener; import com.brightcove.player.event.EventEmitter; import com.brightcove.player.model.Video; import com.brightcove.player.view.BrightcoveExoPlayerVideoView; import com.brightcove.player.view.BrightcovePlayer; /** * This app illustrates how to use the ExoPlayer with the Brightcove * Native Player SDK for Android. */ public class MainActivity extends BrightcovePlayer { private final String TAG = this.getClass().getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); super.onCreate(savedInstanceState); // Get the event emitter from the SDK and create a catalog request to fetch a video from the // Brightcove Edge service, given a video id, an account id and a policy key. EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter(); Catalog catalog = new Catalog(eventEmitter, getString(R.string.account), getString(R.string.policy)); catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { // Add the video found to the queue with add(). // Start playback of the video with start(). @Override public void onVideo(Video video) { Log.v(TAG, "onVideo: video = " + video); brightcoveVideoView.add(video); brightcoveVideoView.start(); } }); } }
- Les Objet vidéo fournit des méthodes pour récupérer des informations sur les médias, comme indiqué ci-dessous :
catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { // Add the video found to the queue with add(). // Start playback of the video with start(). @ Override public void onVideo(Video video) { Log.v(TAG, "onVideo: video = " + video); Log.v(TAG, "onVideo: videoID = " + video.getId()); Log.v(TAG, "onVideo: videoName = " + video.getName()); Log.v(TAG, "onVideo: videoDescription = " + video.getDescription()); Log.v(TAG, "onVideo: videoImage = " + video.getStillImageUri()); Log.v(TAG, "onVideo: sourceCollections = " + video.getSourceCollections()); SourceCollection dashCollection = video.getSourceCollections().get(DeliveryType.DASH); if (dashCollection != null) { Set < Source > sources = dashCollection.getSources(); for (Source source: sources) { if (!TextUtils.isEmpty(source.getUrl())) { Log.v(TAG, "onVideo: DASH source = " + source.getUrl()); } } } brightcoveVideoView.add(video); brightcoveVideoView.start(); } });
Ce qui précède
Log()
les méthodes renvoient les informations de média suivantes : -
Vous voudrez peut-être voir les champs personnalisés, le cas échéant, existent pour le
Video
objet. Ajoutez le code suivant auonVideo
méthode de rappel pour parcourir lecustomField
carte.catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { @ Override public void onVideo(Video video) { Map<String, String> customFieldMap = (HashMap<String, String>) video.getProperties().get(Video.Fields.CUSTOM_FIELDS); if (customFieldMap != null && customFieldMap.size() > 0) { for (Map.Entry<String, String> entry : customFieldMap.entrySet()) { Log.v(TAG, "onVideo: Custom fields: Key: " + entry.getKey() + " Value: " + entry.getValue()); } } brightcoveVideoView.add(video); brightcoveVideoView.start(); } });
Voici un exemple de la sortie enregistrée que vous pouvez voir à partir du code ci-dessus :
MainActivity: onVideo: Custom fields: Key: genre Value: Action MainActivity: onVideo: Custom fields: Key: customlist Value: customListValue1
Notez que les champs personnalisés peuvent être représentés comme
Strings
ouLists
. Même si un champ personnalisé peut être unList
type, c'est une liste deString
valeurs parmi lesquelles une valeur est choisie pour définir la valeur du champ.
Vidéos géo-filtrées
Le Brightcove Player SDK pour Android prend en charge les vidéos géo-filtrées.
Il existe deux manières d'ajouter un filtrage géographique à vos vidéos pour contrôler les pays dans lesquels elles peuvent (ou ne peuvent pas) être visionnées :
Dans votre application Android, lorsque vous récupérez une vidéo à l'aide de Brightcove edge Catalogue objet (API de lecture) dans un pays qui est géo-filtré pour cette vidéo, vous devriez voir ce message :
error { message: Access to this resource is forbidden by access policy.
client_geo: us
error_subcode: CLIENT_GEO
error_code: ACCESS_DENIED }
Clients Brightcove Player
En tant que client Brightcove Player, vous fournirez l'URL de vos ressources vidéo.
Voici un exemple d'ajout d'une vidéo à votre vue vidéo et de démarrage de la lecture :
import com.brightcove.player.model.DeliveryType;
import com.brightcove.player.model.Video;
import com.brightcove.player.view.BrightcoveExoPlayerVideoView;
import com.brightcove.player.view.BrightcovePlayer;
import com.brightcove.player.analytics.Analytics;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BrightcoveVideoView brightcoveVideoView = (BrightcoveVideoView) findViewById(R.id.brightcove_video_view);
Analytics analytics = brightcoveVideoView.getAnalytics();
analytics.setAccount("123456789");
MediaController controller = new MediaController(this);
brightcoveVideoView.setMediaController(controller);
brightcoveVideoView.add(Video.createVideo("http://solutions.brightcove.com/bcls/assets/videos/Bird_Titmouse.mp4", DeliveryType.MP4));
brightcoveVideoView.start();
}
Voyons ensuite comment les événements fonctionnent au sein de l'architecture SDK.