

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

# Gunakan pustaka produser Java
<a name="producer-sdk-javaapi"></a>

Anda dapat menggunakan Amazon Kinesis Video Streams yang disediakan perpustakaan produser Java untuk menulis kode aplikasi dengan konfigurasi minimal, untuk mengirim data media dari perangkat 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. 

1. Daftarkan sumber media dengan`KinesisVideoClient`. 

   Setelah Anda mendaftarkan sumber media dengan`KinesisVideoClient`, setiap kali data tersedia dengan sumber media, ia memanggil `KinesisVideoClient` dengan data.

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

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

Langkah-langkah ini tidak mengharuskan Anda untuk memiliki sumber media, seperti kamera atau mikrofon. Sebagai gantinya, untuk tujuan pengujian, kode menghasilkan bingkai sampel yang terdiri dari serangkaian byte. Anda dapat menggunakan pola pengkodean yang sama ketika Anda mengirim data media dari sumber nyata seperti kamera dan mikrofon. 

Prosedur ini mencakup langkah-langkah berikut:
+ [Unduh dan konfigurasikan kode](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producersdk-javaapi-downloadcode.html)
+ [Tulis dan periksa kodenya](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producersdk-javaapi-writecode.html)
+ [Jalankan dan verifikasi kode](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producersdk-javaapi-reviewcode.html)

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

Sebelum Anda mengatur SDK produsen Java, pastikan Anda memiliki prasyarat berikut: 
+ Dalam kode contoh, Anda memberikan kredensil dengan menentukan profil yang Anda atur dalam file profil AWS kredensial Anda. Jika Anda belum melakukannya, pertama-tama siapkan profil kredensil Anda. Untuk informasi selengkapnya, lihat [Mengatur AWS Kredensial dan Wilayah untuk Pengembangan](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html) di. *AWS SDK untuk Java*
**catatan**  
Contoh Java menggunakan `SystemPropertiesCredentialsProvider` objek untuk mendapatkan kredensil Anda. Penyedia mengambil kredensil ini dari properti sistem `aws.accessKeyId` dan `aws.secretKey` Java. Anda mengatur properti sistem ini di lingkungan pengembangan Java Anda. Untuk informasi tentang cara menyetel properti sistem Java, lihat dokumentasi untuk lingkungan pengembangan terintegrasi (IDE) khusus Anda.
+ Anda `NativeLibraryPath` harus berisi `KinesisVideoProducerJNI` file Anda, tersedia di [https://github.com/awslabs/amazon-kinesis-video-streams- producer-sdk-cpp](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp). Ekstensi nama file untuk file ini tergantung pada sistem operasi Anda: 
  + **KinesisVideoProducerJNI.so** untuk Linux
  + **KinesisVideoProducerJNI.dylib** untuk macOS
  + **KinesisVideoProducerJNI.dll** untuk Windows
**catatan**  
[Pustaka bawaan untuk macOS, Ubuntu, Windows, dan Raspbian tersedia di - .git. `src/main/resources/lib` https://github.com/awslabs/ amazon-kinesis-video-streams producer-sdk-java](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java) Untuk lingkungan lain, kompilasi. [C\$1\$1](producer-sdk-cpp.md)

# Unduh dan konfigurasikan kode pustaka produser Java
<a name="producersdk-javaapi-downloadcode"></a>

Di bagian prosedur pustaka produser Java ini, Anda mengunduh kode contoh Java, mengimpor proyek ke IDE Java Anda, dan mengonfigurasi lokasi perpustakaan. 

Untuk prasyarat dan detail lainnya tentang contoh ini, lihat [Menggunakan pustaka produser Java.](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-javaapi.html)



1. Buat direktori, lalu kloning kode sumber contoh dari GitHub repositori. 

   ```
   git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
   ```

1. Buka lingkungan pengembangan terintegrasi Java (IDE) yang Anda gunakan (misalnya, [Eclipse](https://www.eclipse.org/) atau [JetBrains IntelliJ IDEA](https://www.jetbrains.com/idea/)), dan impor proyek Apache Maven yang Anda unduh: 
   + **Di IntelliJ IDEA****: Pilih Impor.** Arahkan ke `pom.xml` file di root paket yang diunduh.
   + **Di Eclipse:** **Pilih **File**, **Impor**, Maven, Proyek **Maven** yang Ada.** Kemudian navigasikan ke `kinesis-video-java-demo` direktori.

   Untuk informasi selengkapnya, lihat dokumentasi untuk IDE Anda.

1. Kode contoh Java menggunakan AWS kredensil saat ini. Untuk menggunakan profil kredensi yang berbeda, cari kode berikut di: `DemoAppMain.java`

   ```
   final KinesisVideoClient kinesisVideoClient = KinesisVideoJavaClientFactory
       .createKinesisVideoClient(
           Regions.US_WEST_2,
           AuthHelper.getSystemPropertiesCredentialsProvider());
   ```

   Ubah kode menjadi berikut:

   ```
   final KinesisVideoClient kinesisVideoClient = KinesisVideoJavaClientFactory
       .createKinesisVideoClient(
           Regions.US_WEST_2,
           new ProfileCredentialsProvider("credentials-profile-name"));
   ```

   Untuk informasi selengkapnya, lihat [ProfileCredentialsProvider](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/profile/ProfileCredentialsProvider.html) di referensi *AWS SDK untuk Java*.

# Tulis dan periksa kodenya
<a name="producersdk-javaapi-writecode"></a>

Di bagian [prosedur pustaka produser Java ini](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-javaapi.html), Anda menulis dan memeriksa kode contoh Java yang Anda unduh di bagian sebelumnya. 

Aplikasi uji Java ([https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/blob/master/src/main/demo/com/amazonaws/kinesisvideo/demoapp/DemoAppMain.java](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/blob/master/src/main/demo/com/amazonaws/kinesisvideo/demoapp/DemoAppMain.java)) menunjukkan pola pengkodean berikut:
+ Buat instans `KinesisVideoClient`.
+ Buat instans `MediaSource`.
+ Daftarkan `MediaSource` dengan klien.
+ Mulai streaming. Mulai `MediaSource` dan mulai mengirim data ke klien.

Bagian berikut memberikan perincian.



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

Anda membuat `KinesisVideoClient` objek dengan memanggil `createKinesisVideoClient` operasi.

```
final KinesisVideoClient kinesisVideoClient = KinesisVideoJavaClientFactory
    .createKinesisVideoClient(
        Regions.US_WEST_2,
        AuthHelper.getSystemPropertiesCredentialsProvider());
```

`KinesisVideoClient`Untuk melakukan panggilan jaringan, diperlukan kredensil untuk mengautentikasi. Anda meneruskan instance`SystemPropertiesCredentialsProvider`, yang berbunyi `AWSCredentials` untuk profil default di file kredensial:

```
[default]
aws_access_key_id = ABCDEFGHIJKLMOPQRSTU
aws_secret_access_key = AbCd1234EfGh5678IjKl9012MnOp3456QrSt7890
```





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

Untuk mengirim byte ke aliran video Kinesis Anda, Anda harus menghasilkan data. Amazon Kinesis Video Streams `MediaSource` menyediakan antarmuka, yang mewakili sumber data.

Misalnya, perpustakaan Kinesis Video Streams Java `ImageFileMediaSource` menyediakan `MediaSource` implementasi antarmuka. Kelas ini hanya membaca data dari serangkaian file media daripada aliran video Kinesis, tetapi Anda dapat menggunakannya untuk menguji kode.

```
final MediaSource bytesMediaSource = createImageFileMediaSource();
```

## Daftarkan MediaSource dengan klien
<a name="producersdk-javaapi-review-code-register-mediasource"></a>

Daftarkan sumber media yang Anda buat dengan `KinesisVideoClient` sehingga tahu tentang klien (dan kemudian dapat mengirim data ke klien).

```
kinesisVideoClient.registerMediaSource(mediaSource);
```



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

Mulai sumber media sehingga dapat mulai menghasilkan data dan mengirimkannya ke klien.

```
bytesMediaSource.start();
```



# Pembersihan sumber daya
<a name="producersdk-javaapi-cleanup"></a>

Untuk menghindari kebocoran memori, lakukan hal berikut untuk membatalkan pendaftaran sumber media dari klien dan membebaskan klien.

```
try {
    kinesisVideoClient.unregisterMediaSource(mediaSource);
    kinesisVideoClient.free();
} catch (final KinesisVideoException e) {
    throw new RuntimeException(e);
}
```

Jika Anda menambahkan item apa pun ke cache menggunakan [https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/blob/master/src/main/java/com/amazonaws/kinesisvideo/java/service/CachedInfoMultiAuthServiceCallbacksImpl.java](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/blob/master/src/main/java/com/amazonaws/kinesisvideo/java/service/CachedInfoMultiAuthServiceCallbacksImpl.java), misalnya:

```
serviceCallbacks.addStreamInfoToCache(streamName, streamInfo);
serviceCallbacks.addStreamingEndpointToCache(streamName, dataEndpoint);
```

Kosongkan cache setelah selesai:

```
serviceCallbacks.removeStreamFromCache(streamName);
```

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

Untuk menjalankan Java test harness untuk [library produser Java](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-javaapi.html), lakukan hal berikut.

1. Pilih **DemoAppMain**.

1. Pilih **Jalankan**, **Jalankan DemoAppMain ''**.

1. Tambahkan kredensil Anda ke argumen JVM untuk aplikasi:
   + **Untuk AWS kredensi non-sementara:** `"-Daws.accessKeyId={YourAwsAccessKey} -Daws.secretKey={YourAwsSecretKey} -Djava.library.path={NativeLibraryPath}"` 
   + **Untuk AWS kredensi sementara:** `"-Daws.accessKeyId={YourAwsAccessKey} -Daws.secretKey={YourAwsSecretKey} -Daws.sessionToken={YourAwsSessionToken} -Djava.library.path={NativeLibraryPath}" ` 

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

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

1. Video sampel akan 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.

Contoh kode membuat aliran. Saat `MediaSource` dalam kode dimulai, ia mulai mengirim bingkai sampel ke file`KinesisVideoClient`. Klien kemudian mengirimkan data ke aliran video Kinesis Anda. 