개요
빠른 시작을 완료하면 다음 기능을 사용할 수 있습니다.
- 프로젝트를 생성하고 Gradle을 사용하여 Android 용 Brightcove Player SDK를 추가합니다.
- 다음을 포함하도록 레이아웃 변경
BrightcoveExoPlayerVideoView
. - 에 추가
onCreate()
동영상 재생 방법 .다른 출처에서.
고객
개발을 위해 Android Studio를 사용하고 Android 앱에서 Android 용 Brightcove Player SDK를 사용하는 데 관심이있는 개발자.
전제 조건
Java 및 Android 앱 개발에 대한 최소한의 지식.
준비해
Android Studio를 설치하여 개발 준비
- 다운로드안드로이드 스튜디오신청.
- Android Studio 지침에 따라 애플리케이션을 설치합니다.
프로젝트 생성
Android Studio에서 프로젝트를 만든 다음 Gradle을 사용하여 플레이어 SDK에 연결합니다.
Android Studio에서 프로젝트 만들기
- Android Studio를 엽니 다.
- Welcome to Android Studio 대화 상자에서 New Project 를 선택합니다.
- 새 프로젝트 대화 상자에서 빈 활동을 선택하고 다음을 클릭하십시오.
-
Name , Package name , Save location , Language 및 Minimum SDK 값을 제공합니다. 이 빠른 시작에서는 아래 표시된 값이 사용됩니다.
- 마침을클릭합니다.
-
Android Studio는 잠시 동안 작동하고 결국 프로젝트의 초기 상태를 표시합니다.
Gradle을 사용하여 Android 용 Brightcove Player SDK에 연결
Gradle은 Android Studio와 통합되어 있으므로이를 사용하여 Android 용 Native SDK를 프로젝트에 추가합니다.
- Android 보기에서 프로젝트 파일을 찾을 수 있습니다.
- Gradle 스크립트그룹을 확장하고
settings.gradle
파일을 엽니다. repositories
섹션에서 브라이트코브 Maven 리포지토리에 대한 항목을 추가하십시오.dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://repo.brightcove.com/releases' } } } rootProject.name = "PlayVideos" include ':app'
-
Gradle Scripts그룹에서 PlayVideos 프로젝트의 현재 모듈과 연결된
build.gradle
파일을 엽니다. build.gradle
파일에서 해당dependencies
섹션을 찾습니다. 최신 버전의 Android용 Native SDK를 포함합니다. 값 바꾸기8.0.0
아래에서 찾을 수있는 최신 SDK 버전으로개요 : Android 용 Brightcove 기본 SDK문서.dependencies { implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.8' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.8' implementation "com.brightcove.player:exoplayer2:8.0.0" }
Gradle 커뮤니티에서는 '+'문자로 동적 종속성 버전을 사용하는 것이 바람직하지 않습니다. 동적 버전 관리를 사용하면 새 API가 앱의 소스 코드와 예기치 않게 호환되지 않을 수 있으므로 빌드 프로세스에 심각한 위험이 있습니다.
-
Gradle 스크립트그룹에서
에서gradle.properties
파일을 엽니다.gradle.properties
아래 코드를properties
사용하여 수정합니다. 샘플 코드는 android-player-samples 저장소에서 찾을 수 있습니다.android.enableJetifier=true android.useAndroidX=true anpVersion=8.0.0 org.gradle.jvmargs=-XX\:MaxPermSize\=512m
- 프로젝트를 동기화하여 Gradle 파일 변경 사항을 선택하십시오.
애플리케이션 코딩
다음으로 앱을 레이아웃하고 동영상 목록을 만들고 동영상을 재생하는 코드를 작성합니다.
앱의 레이아웃 정의
빈 활동이 있어도 간단한TextView
형세. 이것을BrightcoveExoPlayerVideoView
, 플레이어의보기를 정의합니다.
-
파일을
app/res/layout/activity_main.xml
열고코드를 클릭합니다 . -
기존 제거
TextView
요소를 추가하고BrightcoveExoPlayerVideoView
섹션에서 결과 XML은 다음과 같이 나타납니다. 나중에 사용할 수 있도록id
뷰의 이름이 지정된다는 점에brightcove_video_view
유의하세요.<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" 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"/> </androidx.constraintlayout.widget.ConstraintLayout>
인터넷을 사용하도록 앱 활성화
- 열기
app/manifests/AndroidManifest.xml
파일. -
직후
<application>
코드 블록이지만 결말 위에</manifest>
태그에 다음을 삽입하여 인터넷 액세스를 활성화하십시오.<uses-permission android:name="android.permission.INTERNET"/>
- 프로젝트를 동기화하여 다시 빌드하고 이러한 변경 사항을 선택하십시오.
보기 만들기 및 비디오 재생
-
돌아 가기
MainActivity.java
파일. -
에 대한
MainActivity
클래스, 확장BrightcovePlayer
수업. 이는 앱에 대한 기본 수명주기 관리를 제공합니다.public class MainActivity extends BrightcovePlayer {
-
입력을
BrightcovePlayer
시작하면 선택할 수 있는 옵션이 표시됩니다.BrightcovePlayer
옵션을 두 번 클릭하면import
명령문이 추가됩니다. -
찾기
onCreate()
함수. 슈퍼클래스에 들어가기 전에 다음과brightcoveVideoView
같이 지정하십시오.-
인스턴스 만들기
BrightcoveExoPlayerVideoView
레이아웃과 연결합니다. 대부분의 경우 exoplayer보기를 사용합니다. 자세한 내용은비디오보기 선택문서. - 를
BrightcovePlayer
확장할 때는 슈퍼클래스에 들어가기brightcoveVideoView
전에 를 할당해야 합니다. 이를 통해 일부 스톡 비디오 플레이어 수명 주기 관리가 가능합니다.
public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); super.onCreate(savedInstanceState);
위의 강조 표시된 코드를 붙여넣을 때옵션 + 리턴추가할 키
import
에 대한 진술BrightcoveExoPlayerVideoView
수업. -
-
다음으로 분석을 사용하여 Brightcove 플레이어 계정 ID를 Brightcove에 보내야합니다.
setAccount()
방법.Analytics analytics = brightcoveVideoView.getAnalytics(); analytics.setAccount("your account Id");
-
선택 사항: 재정의하면
BrightcoveExoPlayerVideoView
클래스 또는 Brightcove 플레이어 및 카탈로그를 사용하지 않는 경우 Video Cloud 게시자 ID를 Video Cloud Analytics로 보내야합니다. 분석을 사용하여이를 수행 할 수 있습니다.setAccount()
방법. 이를 통해 비디오 클라우드 분석에서 이 앱에 대한 데이터를 볼 수 있습니다.Analytics analytics = brightcoveVideoView.getAnalytics(); analytics.setAccount("your account Id");
-
원격 서버에서 호스팅되는 비디오에서 비디오 개체를 만듭니다. 가지고 있는 비디오 유형과
DeliveryType
일치하도록 를 설정합니다.Video video = Video.createVideo("https://sdks.support.brightcove.com/assets/videos/hls/greatblueheron/greatblueheron.m3u8", DeliveryType.HLS);
-
비디오 재생이 시작되기 전에 포스터 이미지로 사용할 원격 이미지를 로드합니다.
try { java.net.URI myposterImage = new java.net.URI("https://sdks.support.brightcove.com/assets/images/general/Great-Blue-Heron.png"); video.getProperties().put(Video.Fields.STILL_IMAGE_URI, myposterImage); } catch (URISyntaxException e) { e.printStackTrace(); }
-
보기에 비디오를 추가하고 비디오 재생을 시작합니다.
brightcoveVideoView.add(video); brightcoveVideoView.start();
-
코드는 다음과 비슷해야합니다.
package com.brightcove.playvideos; import android.os.Bundle; 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 java.net.URISyntaxException; public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); // Create the video view brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); super.onCreate(savedInstanceState); // Optional: For Brightcove Player customers to register their apps Analytics analytics = brightcoveVideoView.getAnalytics(); analytics.setAccount("your account Id"); // Define a video from a remote server Video video = Video.createVideo("https://sdks.support.brightcove.com/assets/videos/hls/greatblueheron/greatblueheron.m3u8", DeliveryType.HLS); // Load a remote poster image try { java.net.URI myposterImage = new java.net.URI("https://sdks.support.brightcove.com/assets/images/general/Great-Blue-Heron.png"); video.getProperties().put(Video.Fields.STILL_IMAGE_URI, myposterImage); } catch (URISyntaxException e) { e.printStackTrace(); } // Add video to the view brightcoveVideoView.add(video); // Start video playback brightcoveVideoView.start(); } }
-
애플리케이션을 실행하거나 디버그하여 비디오 재생을 확인하십시오.
비디오 가져 오기 및 재생
이 섹션에서는Catalog
클래스를 사용하여 Video Cloud 서버에서 단일 비디오를 검색 한 다음 재생합니다.
이com.brightcove.player.edge.Catalog
클래스는브라이트코브 재생 API에서 비디오 및 재생목록을 검색하기 위한 비동기 메서드를 제공합니다. 이 API는 Video Cloud 라이브러리에서 콘텐츠를 검색하는 데 권장되는 최신 API입니다.
불필요한 코드 제거
- 이전 앱의 일부 코드는 더 이상 필요하지 않습니다.
onCreate()
메서드에서 슈퍼클래스를 입력한 후 모든 코드를 제거합니다. -
확인
onCreate()
방법은 다음과 같이 나타납니다.public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); // Create the video view brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); super.onCreate(savedInstanceState); } }
카탈로그에서 비디오 검색
- Video Cloud Studio 계정에서 다음 정보를 수집합니다.
- 계정 ID
- 비디오 ID
- 정책 키
-
프로젝트에서 사용자 정의 값을 정의하십시오.
res/values/strings.xml
파일을 열고 값을 업데이트합니다.<?xml version="1.0" encoding="utf-8"?> <resources> <!-- Application name --> <string name="app_name">PlayVideos</string> <!-- A sample Brightcove Edge Account ID --> <string name="account">your account id</string> <!-- A sample Brightcove Edge Policy Key --> <string name="policy">your policy key</string> <!-- A sample Brightcove Video ID --> <string name="videoId">your video id</string> </resources>
-
MainActivity.java
파일로 돌아가서 SDK에서 이벤트 이미터를 가져옵니다.// Get the event emitter from the SDK EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter();
-
이전 단계에서 정의한 계정 ID 및 정책 키 값을 사용하여 Brightcove Edge 서비스에서 비디오를 가져오는 카탈로그 요청을 생성합니다.
// Create a catalog request to fetch a video String account = getString(R.string.account); Catalog catalog = new Catalog.Builder(eventEmitter, account) .setBaseURL(Catalog.DEFAULT_EDGE_BASE_URL) .setPolicy(getString(R.string.policy)) .build();
-
카탈로그 사용
findVideoByID()
비디오 ID와VideoListener
콜백.에서
onVideo()
방법, 비디오를 추가brightcoveVideoView
을 클릭 한 다음 비디오를 시작하십시오.// Get the video by ID catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { @Override public void onVideo(Video video) { // Add video to the view brightcoveVideoView.add(video); // Start video playback brightcoveVideoView.start(); } });
-
MainActivity
클래스의 전체 코드는 다음과 유사해야합니다.public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); // Create the video view brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); super.onCreate(savedInstanceState); // Get the event emitter from the SDK EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter(); // Create a catalog request to fetch a video String account = getString(R.string.account); Catalog catalog = new Catalog.Builder(eventEmitter, account) .setBaseURL(Catalog.DEFAULT_EDGE_BASE_URL) .setPolicy(getString(R.string.policy)) .build(); // Get the video by ID catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { @Override public void onVideo(Video video) { // Add video to the view brightcoveVideoView.add(video); // Start video playback brightcoveVideoView.start(); } }); } }
- 앱을 실행하여 비디오 재생을 확인하십시오.
재생 목록 가져 오기 및 재생
이 섹션에서는Catalog
클래스를 사용하여 Video Cloud 서버에서 재생 목록을 검색 한 다음 재생 목록의 비디오를 재생합니다.
이com.brightcove.player.edge.Catalog
클래스는브라이트코브 재생 API에서 비디오 및 재생목록을 검색하기 위한 비동기 메서드를 제공합니다. 이 API는 Video Cloud 라이브러리에서 콘텐츠를 검색하는 데 권장되는 최신 API입니다.
불필요한 코드 제거
-
이전 앱의 일부 코드는 더 이상 필요하지 않습니다. 카탈로그의 호출을 제거하십시오.
findVideoByID()
방법 및 관련VideoListener
익명 콜백 기능.// Get the video by ID catalog.findVideoByID(getString(R.string.videoId), new VideoListener() { @Override public void onVideo(Video video) { // Add video to the view brightcoveVideoView.add(video); // Start video playback brightcoveVideoView.start(); } });
카탈로그에서 재생 목록 검색
-
기존 카탈로그 인스턴스는 재생 목록을 검색하는 데 작동하므로변경할 필요가 없습니다다음 코드 줄에 :
// Get the event emitter from the SDK EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter(); // Create a catalog request to fetch a video String account = getString(R.string.account); Catalog catalog = new Catalog.Builder(eventEmitter, account) .setBaseURL(Catalog.DEFAULT_EDGE_BASE_URL) .setPolicy(getString(R.string.policy)) .build();
- Video Cloud Studio에서미디어모듈에서 재생 목록을 선택하고재생 목록 ID .
-
res/values/strings.xml
파일을 열고 플레이리스트 ID에 대한 항목을 추가합니다.<?xml version="1.0" encoding="utf-8"?> <resources> <!-- Application name --> <string name="app_name">PlayVideos</string> <!-- A sample Brightcove Edge Account ID --> <string name="account">your account id</string> <!-- A sample Brightcove Edge Policy Key --> <string name="policy">your policy key</string> <!-- A sample Brightcove Playlist ID --> <string name="playlistId">your playlist id</string> </resources>
-
카탈로그 사용
findPlaylistByID()
재생 목록 ID와PlaylistListener
콜백.에서
onPlaylist()
메서드, 재생 목록에서 비디오를 검색하고 모든 비디오를brightcoveVideoView
을 클릭 한 다음 첫 번째 비디오를 시작하십시오.// Get the playlist by ID String playlist = getString(R.string.playlistId); catalog.findPlaylistByID(playlist, new PlaylistListener() { @Override public void onPlaylist(Playlist playlist) { // Add playlist to the view brightcoveVideoView.addAll(playlist.getVideos()); // Start playback brightcoveVideoView.start(); } });
-
MainActivity
클래스의 전체 코드는 다음과 유사해야합니다.public class MainActivity extends BrightcovePlayer { @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); // Create the video view brightcoveVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); super.onCreate(savedInstanceState); // Get the event emitter from the SDK EventEmitter eventEmitter = brightcoveVideoView.getEventEmitter(); // Create a catalog request to fetch a video String account = getString(R.string.account); Catalog catalog = new Catalog.Builder(eventEmitter, account) .setBaseURL(Catalog.DEFAULT_EDGE_BASE_URL) .setPolicy(getString(R.string.policy)) .build(); // Get the playlist by ID String playlist = getString(R.string.playlistId); catalog.findPlaylistByID(playlist, new PlaylistListener() { @Override public void onPlaylist(Playlist playlist) { // Add playlist to the view brightcoveVideoView.addAll(playlist.getVideos()); // Start playback brightcoveVideoView.start(); } }); } }
- 앱을 실행하여 재생 목록에서 여러 동영상을 확인합니다.
끝났습니다! Android SDK 빠른 시작을 사용해 주셔서 감사합니다.
전체 프로젝트 예제는 Android 플레이어 샘플을 참조하세요.