기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Android 프로듀서 라이브러리 프로시저의 이 섹션에서는 예제 코드를 살펴봅니다.
Android 테스트 애플리케이션(AmazonKinesisVideoDemoApp
)은 다음과 같은 코딩 패턴을 보입니다.
-
KinesisVideoClient
의 인스턴스를 만듭니다. -
MediaSource
의 인스턴스를 만듭니다. -
스트리밍을 시작합니다.
MediaSource
를 시작하면 데이터를 클라이언트로 보내기 시작합니다.
다음 단원들에서 세부 정보가 제공됩니다.
의 인스턴스를 생성합니다. KinesisVideoClient
createKinesisVideoClient
작업을 호출하여 KinesisVideoClient
객체를 생성합니다.
mKinesisVideoClient = KinesisVideoAndroidClientFactory.createKinesisVideoClient( getActivity(), KinesisVideoDemoApp.KINESIS_VIDEO_REGION, KinesisVideoDemoApp.getCredentialsProvider());
KinesisVideoClient
가 네트워크 호출을 하려면 인증을 위한 자격 증명이 필요합니다. 이전 섹션에서 수정한 파일에서 Amazon Cognito 자격 증명을 읽는 인스턴스를 전달합니다. AWSCredentialsProvider
awsconfiguration.json
의 인스턴스를 생성하십시오. MediaSource
Kinesis 비디오 스트림으로 바이트를 전송하려면 데이터를 생성해야 합니다. Amazon Kinesis Video Streams는 데이터 소스를 나타내는 인터페이스를 제공합니다MediaSource
.
예를 들어 Kinesis Video Streams Android 라이브러리는 AndroidCameraMediaSource
인터페이스 구현을 제공합니다MediaSource
. 이 클래스는 디바이스의 카메라 중 하나에서 데이터를 읽습니다.
다음 코드 예제(fragment/StreamConfigurationFragment.java
파일의 예제)에서 미디어 원본의 구성이 생성됩니다.
private AndroidCameraMediaSourceConfiguration getCurrentConfiguration() {
return new AndroidCameraMediaSourceConfiguration(
AndroidCameraMediaSourceConfiguration.builder()
.withCameraId(mCamerasDropdown.getSelectedItem().getCameraId())
.withEncodingMimeType(mMimeTypeDropdown.getSelectedItem().getMimeType())
.withHorizontalResolution(mResolutionDropdown.getSelectedItem().getWidth())
.withVerticalResolution(mResolutionDropdown.getSelectedItem().getHeight())
.withCameraFacing(mCamerasDropdown.getSelectedItem().getCameraFacing())
.withIsEncoderHardwareAccelerated(
mCamerasDropdown.getSelectedItem().isEndcoderHardwareAccelerated())
.withFrameRate(FRAMERATE_20)
.withRetentionPeriodInHours(RETENTION_PERIOD_48_HOURS)
.withEncodingBitRate(BITRATE_384_KBPS)
.withCameraOrientation(-mCamerasDropdown.getSelectedItem().getCameraOrientation())
.withNalAdaptationFlags(StreamInfo.NalAdaptationFlags.NAL_ADAPTATION_ANNEXB_CPD_AND_FRAME_NALS)
.withIsAbsoluteTimecode(false));
}
다음 코드 예제(fragment/StreamingFragment.java
파일의 예제)에서 미디어 원본이 생성됩니다.
mCameraMediaSource = (AndroidCameraMediaSource) mKinesisVideoClient .createMediaSource(mStreamName, mConfiguration);
미디어 소스를 시작합니다.
미디어 원본이 데이터 생성 및 클라이언트로의 전송을 시작할 수 있도록 미디어 원본을 시작합니다. 다음 코드 예제는 fragment/StreamingFragment.java
파일의 예제입니다.
mCameraMediaSource.start();