

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan pustaka produsen Android
<a name="producer-sdk-android"></a>

Anda dapat menggunakan library produsen Android yang disediakan Amazon Kinesis Video Streams untuk menulis kode aplikasi, dengan konfigurasi minimal, untuk mengirim data media dari perangkat Android ke aliran video Kinesis. 

Lakukan langkah-langkah berikut untuk mengintegrasikan kode Anda dengan Kinesis Video Streams sehingga aplikasi Anda dapat memulai streaming data ke aliran video Kinesis Anda:

1. Buat sebuah instance dari `KinesisVideoClient` objek. 

1. Buat `MediaSource` objek dengan memberikan informasi sumber media. Misalnya, saat membuat sumber media kamera, Anda memberikan informasi seperti mengidentifikasi kamera dan menentukan pengkodean yang digunakan kamera.

   Saat Anda ingin memulai streaming, Anda harus membuat sumber media khusus. 

## Prosedur: Gunakan SDK produsen Android
<a name="producer-sdk-android-using"></a>

Prosedur ini menunjukkan cara menggunakan klien produsen Kinesis Video Streams Android di aplikasi Android Anda untuk mengirim data ke aliran video Kinesis Anda. 

Prosedur ini mencakup langkah-langkah berikut:
+ [Prasyarat](producersdk-android-prerequisites.md)
+ [Unduh dan konfigurasikan kode pustaka produsen Android](producersdk-android-downloadcode.md)
+ [Periksa kodenya](producersdk-android-writecode.md)
+ [Jalankan dan verifikasi kode](producersdk-android-reviewcode.md)

# Prasyarat
<a name="producersdk-android-prerequisites"></a>

Kami merekomendasikan [Android Studio](https://developer.android.com/studio/index.html) untuk memeriksa, mengedit, dan menjalankan kode aplikasi. Kami merekomendasikan menggunakan versi stabil terbaru.

Dalam kode contoh, Anda memberikan kredensi Amazon Cognito.

**Topics**
+ [Siapkan kumpulan pengguna](#set-up-user-pool)
+ [Siapkan kolam identitas](#set-up-identity-pool)

## Siapkan kumpulan pengguna
<a name="set-up-user-pool"></a>

**Untuk mengatur kumpulan pengguna**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home) dan verifikasi bahwa wilayahnya benar.

1. Di navigasi di sebelah kiri pilih **Kumpulan pengguna**.

1. Di bagian **User pool**, pilih **Create user pool**.

1. Lengkapi bagian berikut:

   1. **Langkah 1: Konfigurasikan pengalaman masuk** - Di bagian opsi **masuk kumpulan pengguna Cognito**, pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 2: Konfigurasikan persyaratan keamanan** - Pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 3: Konfigurasikan pengalaman pendaftaran** - Pilih opsi yang sesuai.

      Pilih **Selanjutnya**.

   1. **Langkah 4: Konfigurasikan pengiriman pesan** - Pilih opsi yang sesuai.

      Di bidang **pemilihan peran IAM**, pilih peran yang ada atau buat peran baru.

      Pilih **Selanjutnya**.

   1. **Langkah 5: Integrasikan aplikasi Anda** - Pilih opsi yang sesuai.

      Di bidang **Klien aplikasi awal**, pilih **Klien rahasia**.

      Pilih **Selanjutnya**.

   1. **Langkah 6: Tinjau dan buat** - Tinjau pilihan Anda dari bagian sebelumnya, lalu pilih **Buat kumpulan pengguna**.

1. Pada halaman **User pool**, pilih pool yang baru saja Anda buat.

   Salin **ID kumpulan Pengguna** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.PoolId`.

1. Pilih tab **Integrasi aplikasi** dan pergi ke bagian bawah halaman.

1. Di bagian **Daftar klien Aplikasi**, pilih **nama klien Aplikasi** yang baru saja Anda buat.

   Salin **ID Klien** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.AppClientId`.

1. Tunjukkan **rahasia Klien** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CognitoUserPool.Default.AppClientSecret`.

## Siapkan kolam identitas
<a name="set-up-identity-pool"></a>

**Untuk mengatur kumpulan identitas**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home) dan verifikasi bahwa wilayahnya benar.

1. Di navigasi di sebelah kiri pilih **Identity pool**.

1. Pilih **Buat kumpulan identitas**.

1. Konfigurasikan kumpulan identitas.

   1. **Langkah 1: Konfigurasikan kepercayaan kumpulan identitas** - Lengkapi bagian berikut:
      + **Akses pengguna - Pilih Akses** yang **Diautentikasi**
      + **Sumber identitas yang diautentikasi** - Pilih kumpulan **pengguna Amazon Cognito**

      Pilih **Selanjutnya**.

   1. **Langkah 2: Konfigurasikan izin** - Di bagian **peran yang diautentikasi**, lengkapi bidang berikut:
      + Peran **IAM - Pilih Buat peran** **IAM baru**
      + **Nama peran IAM** - Masukkan nama dan catat untuk langkah selanjutnya.

      Pilih **Selanjutnya**.

   1. **Langkah 3: Hubungkan penyedia identitas** - Di bagian **Rincian kumpulan pengguna**, lengkapi bidang berikut: 
      + **ID kumpulan pengguna** - Pilih kumpulan pengguna yang Anda buat sebelumnya.
      + **ID klien aplikasi** - Pilih ID klien aplikasi yang Anda buat sebelumnya.

      Pilih **Selanjutnya**.

   1. **Langkah 4: Konfigurasikan properti** - Ketik nama di bidang **Identity pool name**.

      Pilih **Selanjutnya**.

   1. **Langkah 5: Tinjau dan buat** - Tinjau pilihan Anda di setiap bagian, lalu pilih **Buat kumpulan identitas**.

1. Pada halaman **Identity pool**, pilih kumpulan identitas baru Anda.

   Salin **ID kumpulan Identitas** dan catat ini untuk nanti. Dalam `awsconfiguration.json` file, ini adalah`CredentialsProvider.CognitoIdentity.Default.PoolId`.

1. Perbarui izin untuk peran IAM.

   1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Di navigasi di sebelah kiri, pilih **Peran**.

   1. Temukan dan pilih peran yang Anda buat di atas.
**catatan**  
Gunakan bilah pencarian, jika perlu.

   1. Pilih kebijakan izin terlampir.

      Pilih **Edit**.

   1. Pilih tab **JSON** dan ganti kebijakan dengan yang berikut:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cognito-identity:*",
                      "kinesisvideo:*"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```

------

      Pilih **Selanjutnya**.

   1. Pilih kotak di samping **Setel versi baru ini sebagai default** jika belum dipilih.

      Pilih **Simpan perubahan**.

# Unduh dan konfigurasikan kode pustaka produsen Android
<a name="producersdk-android-downloadcode"></a>

Di bagian prosedur library produsen Android ini, Anda mengunduh kode contoh Android dan membuka project di Android Studio. 

Untuk prasyarat dan detail lainnya tentang contoh ini, lihat [Menggunakan library produsen Android.](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-android.html)



1. Buat direktori, lalu kloning AWS Mobile SDK for Android dari GitHub repositori. 

   ```
   git clone https://github.com/awslabs/aws-sdk-android-samples
   ```

1. Buka [Android Studio](https://developer.android.com/studio/index.html).

1. Di layar pembuka, pilih **Buka project Android Studio yang sudah ada**.

1. Arahkan ke `aws-sdk-android-samples/AmazonKinesisVideoDemoApp` direktori, dan pilih **OK**.

1. Buka file `AmazonKinesisVideoDemoApp/src/main/res/raw/awsconfiguration.json`.

   Di `CredentialsProvider` node, berikan ID kumpulan identitas dari prosedur **Untuk menyiapkan kumpulan identitas** di bagian [Prasyarat](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-android.html#producersdk-android-prerequisites), dan berikan Wilayah AWS (misalnya,) Anda. **us-west-2**

   Di `CognitoUserPool` node, berikan rahasia klien App, ID klien App, dan ID Pool dari prosedur **Untuk menyiapkan kumpulan pengguna** di bagian [Prasyarat](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-android.html#producersdk-android-prerequisites), dan berikan Wilayah AWS (misalnya,). **us-west-2**

1. `awsconfiguration.json`File Anda akan terlihat mirip dengan yang berikut ini:

   ```
   {
     "Version": "1.0",
     "CredentialsProvider": {
       "CognitoIdentity": {
         "Default": {
           "PoolId": "us-west-2:01234567-89ab-cdef-0123-456789abcdef",
           "Region": "us-west-2"
         }
       }
     },
     "IdentityManager": {
       "Default": {}
     },
     "CognitoUserPool": {
       "Default": {
         "AppClientSecret": "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmno",
         "AppClientId": "0123456789abcdefghijklmnop",
         "PoolId": "us-west-2_qRsTuVwXy",
         "Region": "us-west-2"
       }
     }
   }
   ```

1. Perbarui `AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/KinesisVideoDemoApp.java` dengan Wilayah Anda (dalam contoh berikut, disetel ke **US\$1WEST\$12**): 

   ```
   public class KinesisVideoDemoApp extends Application {
       public static final String TAG = KinesisVideoDemoApp.class.getSimpleName();
       public static Regions KINESIS_VIDEO_REGION = Regions.US_WEST_2;
   ```

   Untuk informasi tentang Wilayah AWS konstanta, lihat [Wilayah](https://aws-amplify.github.io/aws-sdk-android/docs/reference/com/amazonaws/regions/Regions.html).

# Periksa kodenya
<a name="producersdk-android-writecode"></a>

Di bagian [prosedur library produsen Android ini](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-android.html), Anda memeriksa kode contoh. 

Aplikasi pengujian Android (`AmazonKinesisVideoDemoApp`) menunjukkan pola pengkodean berikut:
+ Buat instans `KinesisVideoClient`.
+ Buat instans `MediaSource`.
+ Mulai streaming. Mulai`MediaSource`, dan mulai mengirim data ke klien.

Bagian berikut memberikan perincian.



## Buat sebuah instance dari KinesisVideoClient
<a name="producersdk-android-review-code-create-client"></a>

Anda membuat `[KinesisVideoClient](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/kinesisvideo/client/KinesisVideoClient.java)` objek dengan memanggil `[createKinesisVideoClient](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/mobileconnectors/kinesisvideo/client/KinesisVideoAndroidClientFactory.java)` operasi.

```
mKinesisVideoClient = KinesisVideoAndroidClientFactory.createKinesisVideoClient(
                    getActivity(),
                    KinesisVideoDemoApp.KINESIS_VIDEO_REGION,
                    KinesisVideoDemoApp.getCredentialsProvider());
```

`KinesisVideoClient`Untuk melakukan panggilan jaringan, diperlukan kredensil untuk mengautentikasi. Anda meneruskan instance`AWSCredentialsProvider`, yang membaca kredensi Amazon Cognito Anda dari `awsconfiguration.json` file yang Anda modifikasi di bagian sebelumnya.

## Buat sebuah instance dari MediaSource
<a name="producersdk-android-review-code-create-mediasource"></a>

Untuk mengirim byte ke aliran video Kinesis Anda, Anda harus menghasilkan data. Amazon Kinesis Video Streams `[MediaSource](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/kinesisvideo/internal/client/mediasource/MediaSource.java)` menyediakan antarmuka, yang mewakili sumber data.

Misalnya, library Android Kinesis Video Streams `[AndroidCameraMediaSource](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-kinesisvideo/src/main/java/com/amazonaws/mobileconnectors/kinesisvideo/mediasource/android/AndroidCameraMediaSource.java)` menyediakan `MediaSource` implementasi antarmuka. Kelas ini membaca data dari salah satu kamera perangkat.

Dalam contoh kode berikut (dari `[fragment/StreamConfigurationFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamConfigurationFragment.java)` file), konfigurasi untuk sumber media dibuat:

```
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));
}
```

Dalam contoh kode berikut (dari `[fragment/StreamingFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamingFragment.java)` file), sumber media dibuat:

```
mCameraMediaSource = (AndroidCameraMediaSource) mKinesisVideoClient
    .createMediaSource(mStreamName, mConfiguration);
```

## Mulai sumber media
<a name="producersdk-android-review-code-start-mediasource"></a>

Mulai sumber media sehingga dapat mulai menghasilkan data dan mengirimkannya ke klien. Contoh kode berikut adalah dari `[fragment/StreamingFragment.java](https://github.com/awslabs/aws-sdk-android-samples/blob/main/AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/fragment/StreamingFragment.java)` file:

```
mCameraMediaSource.start();
```



# Jalankan dan verifikasi kode
<a name="producersdk-android-reviewcode"></a>

Untuk menjalankan aplikasi contoh Android untuk [library produsen Android](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-android.html), lakukan hal berikut.

1. Connect ke perangkat Android.

1. Pilih **Jalankan**, **Jalankan...** , dan pilih **Edit konfigurasi**... .

1. Pilih ikon plus (**\$1**), **Aplikasi Android**. Di bidang **Nama**, masukkan **AmazonKinesisVideoDemoApp**. Dalam pulldown **Modul**, pilih. **AmazonKinesisVideoDemoApp** Pilih **OK**.

1. Pilih **Jalankan**, **Jalankan**.

1. Di layar **Select Deployment Target**, pilih perangkat yang terhubung, dan pilih **OK**.

1. Dalam **AWSKinesisVideoDemoApp**aplikasi pada perangkat, pilih **Buat akun baru**.

1. Masukkan nilai untuk **USERNAME**, **Kata Sandi**, **Nama yang diberikan**, **Alamat email**, dan **Nomor telepon**, lalu pilih **Daftar**.
**catatan**  
Nilai-nilai ini memiliki kendala berikut:  
**Kata sandi:** Harus berisi huruf besar dan kecil, angka, dan karakter khusus. [Anda dapat mengubah batasan ini di halaman kumpulan Pengguna di konsol Amazon Cognito.](https://console.aws.amazon.com/cognito/home) 
**Alamat email:** Harus berupa alamat yang valid sehingga Anda dapat menerima kode konfirmasi.
**Nomor telepon:** Harus dalam format berikut:**\$1*<Country code>**<Number>***, misalnya,**\$112065551212**.

1. Masukkan kode yang Anda terima melalui email, dan pilih **Konfirmasi**. Pilih **Ok**.

1. Pada halaman berikutnya, pertahankan nilai default, dan pilih **Stream**.

1. Masuk ke Konsol Manajemen AWS dan buka konsol [Kinesis Video](https://console.aws.amazon.com//kinesisvideo/home/) Streams di Wilayah AS Barat (Oregon). 

   Pada halaman **Kelola Aliran**, pilih aliran **demo**. 

1. Video streaming diputar di pemutar yang disematkan. Anda mungkin perlu menunggu waktu yang singkat (hingga sepuluh detik di bawah kondisi bandwidth dan prosesor biasa) sementara frame menumpuk sebelum video muncul.
**catatan**  
Jika layar perangkat berputar (misalnya, dari potret ke lanskap), aplikasi berhenti streaming video.

Contoh kode membuat aliran. Saat kode dimulai, ia mulai mengirim bingkai dari kamera ke`KinesisVideoClient`. `MediaSource` **Klien kemudian mengirimkan data ke aliran video Kinesis bernama demo-stream.** 