Memulai - Amazon Interactive Video Service

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

Memulai

Instal Perpustakaan

Untuk menambahkan library siaran Amazon IVS Android ke lingkungan pengembangan Android Anda, tambahkan pustaka ke build.gradle file modul Anda, seperti yang ditunjukkan di sini (untuk versi terbaru SDK siaran Amazon IVS):

repositories { mavenCentral() } dependencies { implementation 'com.amazonaws:ivs-broadcast:1.14.1' }

Sebagai alternatif, untuk menginstal SDK secara manual, unduh versi terbaru dari lokasi ini:

Buat Event Listener

Menyiapkan pendengar acara memungkinkan Anda menerima pembaruan status, pemberitahuan perubahan perangkat, kesalahan, dan informasi audio sesi.

BroadcastSession.Listener broadcastListener = new BroadcastSession.Listener() { @Override public void onStateChanged(@NonNull BroadcastSession.State state) { Log.d(TAG, "State=" + state); } @Override public void onError(@NonNull BroadcastException exception) { Log.e(TAG, "Exception: " + exception); } };

Permintaan Izin

Aplikasi Anda harus meminta izin untuk mengakses kamera dan mikrofon pengguna. (Ini tidak spesifik untuk Amazon IVS; diperlukan untuk aplikasi apa pun yang membutuhkan akses ke kamera dan mikrofon.)

Di sini, kami memeriksa apakah pengguna telah memberikan izin dan, jika tidak, memintanya:

final String[] requiredPermissions = { Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO }; for (String permission : requiredPermissions) { if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { // If any permissions are missing we want to just request them all. ActivityCompat.requestPermissions(this, requiredPermissions, 0x100); break; } }

Di sini, kami mendapatkan respons pengguna:

@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == 0x100) { for (int result : grantResults) { if (result == PackageManager.PERMISSION_DENIED) { return; } } setupBroadcastSession(); } }

Buat Sesi Siaran

Antarmuka siaran adalahcom.amazonaws.ivs.broadcast.BroadcastSession. Inisialisasi dengan preset, seperti yang ditunjukkan di bawah ini. Jika ada kesalahan selama inisialisasi (seperti kegagalan untuk mengkonfigurasi codec) Anda BroadcastListener akan mendapatkan pesan kesalahan dan broadcastSession.isReady akan. false

Penting: Semua panggilan ke Amazon IVS Broadcast SDK for Android harus dilakukan di thread tempat SDK dipakai. Panggilan dari thread yang berbeda akan menyebabkan SDK menimbulkan kesalahan fatal dan berhenti menyiarkan.

// Create a broadcast-session instance and sign up to receive broadcast // events and errors. Context ctx = getApplicationContext(); broadcastSession = new BroadcastSession(ctx, broadcastListener, Presets.Configuration.STANDARD_PORTRAIT, Presets.Devices.FRONT_CAMERA(ctx));

Lihat jugaBuat Sesi Siaran (Versi Lanjutan).

Mengatur ImagePreviewView untuk Pratinjau

Jika Anda ingin menampilkan pratinjau untuk perangkat kamera aktif, tambahkan pratinjau ImagePreviewView perangkat ke hierarki tampilan Anda.

// awaitDeviceChanges will fire on the main thread after all pending devices // attachments have been completed broadcastSession.awaitDeviceChanges(() -> { for(Device device: session.listAttachedDevices()) { // Find the camera we attached earlier if(device.getDescriptor().type == Device.Descriptor.DeviceType.CAMERA) { LinearLayout previewHolder = findViewById(R.id.previewHolder); ImagePreviewView preview = ((ImageDevice)device).getPreviewView(); preview.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); previewHolder.addView(preview); } } });

Mulai Siaran

Nama host yang Anda terima di bidang ingestEndpoint respons GetChannel titik akhir harus ditambahkan dan rtmps:// ditambahkan. /app URL lengkap harus dalam format ini: rtmps://{{ ingestEndpoint }}/app

broadcastSession.start(IVS_RTMPS_URL, IVS_STREAMKEY);

SDK siaran Android hanya mendukung konsumsi RTMPS (bukan konsumsi RTMP yang tidak aman).

Hentikan Siaran

broadcastSession.stop();

Lepaskan Sesi Siaran

Anda harus memanggil broadcastSession.release() metode ketika sesi siaran tidak lagi digunakan, untuk membebaskan sumber daya yang digunakan oleh perpustakaan.

@Override protected void onDestroy() { super.onDestroy(); previewHolder.removeAllViews(); broadcastSession.release(); }