시작하기 - Amazon Interactive Video Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

시작하기

라이브러리 설치

Amazon 개발 환경에 Amazon IVS Android 플레이어 라이브러리를 추가하려면 여기에 나온 것처럼(최신 버전의 Amazon IVS 플레이어용) 라이브러리를 모듈의 build.gradle 파일에 추가합니다.

repositories { mavenCentral() } dependencies { implementation 'com.amazonaws:ivs-player:1.24.0' }

또는 SDK를 수동으로 설치하려면 다음 위치에서 최신 버전을 다운로드하세요.

플레이어 생성 및 이벤트 리스너 설정

플레이어 인터페이스는 com.amazonaws.ivs.player.Player입니다. 아래 그림과 같이 초기화합니다.

// Create a player instance // <this> refers to the current Android Activity player = Player.Factory.create(this); // Set up to receive playback events and errors player.addListener(this);

또는 PlayerView를 사용하여 초기화합니다.

// Create a player instance // <this> refers to the current Android Activity PlayerView playerView = new PlayerView(this); Player player = playerView.getPlayer(); // Set up to receive playback events and errors player.addListener(this);

참고: 리스너 콜백 메서드는 Android 애플리케이션의 기본 스레드에서 실행됩니다.

SurfaceView for Video 설정

PlayerView를 사용하지 않는 경우 비디오를 표시하려면 SurfaceView를 Android UI 레이아웃에 추가합니다. Surface가 사용 가능해야 비디오 스트림을 재생할 수 있습니다. getHolder()를 호출하여 검색된 SurfaceHolder 인터페이스를 통해 기본 Surface에 액세스할 수 있습니다. (안드로이드 개발자 레퍼런스 참조). SurfaceView SurfaceHolder.Callback를 사용하여 표면 변경에 대한 이벤트를 수신합니다 (SurfaceHolder.Callback 참조).

surfaceView = (SurfaceView) findViewById(R.id.surfaceView); surfaceView.getHolder().addCallback(this); @Override public void surfaceCreated(SurfaceHolder holder) { this.surface = holder.getSurface(); if (player != null) { player.setSurface(this.surface); } } @Override public void surfaceDestroyed(SurfaceHolder holder) { this.surface = null; if (player != null) { player.setSurface(null); } }

스트림 재생

스트림이 비동기식으로 로드되기 때문에 애플리케이션에서 play 메서드를 호출하여 재생을 시작하기 전에 플레이어는 READY 상태여야 합니다. Player.Listener 인터페이스를 사용하여 플레이어가 올바른 상태인 시점을 확인할 수 있습니다.

다음 예제 코드를 참조하세요.

player.load(Uri.parse(url)); @Override public void onStateChanged(Player.State state) { switch (state) { case BUFFERING: // player is buffering break; case READY: player.play(); break; case IDLE: break; case PLAYING: // playback started break; } }

플레이어 해제

플레이어가 더 이상 사용되지 않을 때 라이브러리에서 사용하는 리소스를 해제하려면 player.release() 메서드를 호출해야 합니다. 일반적으로 이 작업은 플레이어가 포함된 활동 또는 조각의 onDestroy 콜백에서 완료됩니다.

@Override protected void onDestroy() { super.onDestroy(); player.removeListener(this); player.release(); }

player.release() 메서드가 호출되면 플레이어를 더 이상 사용할 수 없습니다.

권한

Android 플레이어 SDK에는 다음 권한이 필요합니다.

<uses-permission android:name="android.permission.INTERNET" />

또한 다음과 같은 선택적 권한으로 재생 환경을 향상할 수 있습니다.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

스레드 안전

플레이어 API는 스레드 안전 기능이 아닙니다. 플레이어 인스턴스에 대한 모든 직접 호출은 동일한 스레드에서 이루어져야 합니다.