Pesan Pemutaran Media

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Aplikasi pengirim Google Cast mengontrol pemutaran di perangkat penerima dengan mengirimkan pesan dalam format JSON ke aplikasi penerima. Demikian pula, penerima akan mengirim pesan kembali ke pengirim, juga dalam JSON. Pesan dapat berupa perintah dari pengirim yang mengubah status pemutar, respons terhadap perintah tersebut dari penerima, atau struktur data yang mendeskripsikan media untuk aplikasi penerima.

Dengan mematuhi Persyaratan Layanan Developer Tambahan Google Cast SDK, aplikasi media Cast harus menggunakan pesan ini seperti yang dijelaskan di sini untuk mengontrol pemutaran media pada penerima. Tindakan ini akan memberi aplikasi media pengalaman pengguna yang konsisten di seluruh platform dan memastikan bahwa aplikasi Cast akan mendukung kasus penggunaan baru dan mendatang. Struktur ini juga mendukung data kustom, jika sesuai, dan aplikasi dapat menentukan pesannya sendiri untuk perintah yang tidak didukung oleh SDK.

Namespace untuk pesan pemutaran media ditentukan sebagai urn:x-cast:com.google.cast.media.

Catatan: Pesan dan struktur dalam spesifikasi ini memiliki ukuran maksimum implisit yang ditentukan oleh ukuran maksimum pesan transportasi, tidak ada batasan untuk setiap kolom. Ukuran maksimum pesan transportasi saat ini adalah 64 KBytes.

Struktur data namespace umum

Superset struktur data yang digunakan oleh semua artefak namespace media ditentukan dalam namespace umum.

Gambar

Ini adalah deskripsi gambar, termasuk sejumlah kecil metadata yang memungkinkan aplikasi pengirim memilih gambar, bergantung pada cara gambar dirender.

Tinggi dan lebar bersifat opsional pada satu item saja dalam array Gambar. Misalnya, jika ada satu item yang dikembalikan, item tersebut bersifat opsional; jika ada dua item yang dikembalikan, satu item harus menentukan tinggi dan lebar, tetapi pengirim dapat memilih untuk menggunakan opsi "default" jika tidak seperti yang diteruskan dengan parameter tertentu.

Name Jenis Deskripsi
url URI URI untuk gambar
tinggi bilangan bulat opsional Tinggi gambar
lebar bilangan bulat opsional Lebar gambar

Volume

Volume streaming media. Digunakan untuk efek fade-in/fade-out pada streaming media. (Catatan: volume sistem diubah menggunakan API pengirim.) Volume streaming tidak boleh digunakan bersama dengan penggeser volume atau tombol volume untuk mengontrol volume perangkat. Setidaknya salah satu parameter berikut harus diteruskan untuk mengubah volume streaming.

Name Jenis Deskripsi
level dobel opsional Tingkat volume streaming saat ini sebagai nilai antara 0,0 dan 1,0 dengan 1,0 adalah volume maksimum.
dibisukan boolean opsional Apakah perangkat Cast dibisukan, terlepas dari tingkat volume

Struktur data namespace media

Pesan ini mendeskripsikan status pemutar media. Namespacenya adalah urn:x-cast:com.google.cast.media.

InformasiMedia

Struktur data ini menjelaskan aliran media.

Name Jenis Deskripsi
IDKonten string ID khusus layanan untuk konten yang saat ini dimuat oleh pemutar media. Ini adalah string bentuk bebas dan ditujukan khusus untuk aplikasi. Umumnya, ini akan menjadi URL ke media, tetapi pengirim dapat memilih untuk meneruskan string yang dapat ditafsirkan penerima dengan benar. Panjang maks.: 1k
streamType enum
(string)

Menjelaskan jenis artefak media sebagai salah satu dari yang berikut:

  • TIDAK ADA
  • DIPUBLIKASIKAN
  • LIVE STREAMING
jenisKonten string Jenis konten MIME media yang sedang diputar
metadata Objek

opsional Objek metadata media, salah satu dari berikut ini:

durasi dobel opsional Durasi streaming yang sedang diputar dalam hitungan detik
datakustom Objek opsional Blob spesifik aplikasi pada data yang ditentukan oleh aplikasi pengirim atau aplikasi penerima

GenericMediaMetadata

Menjelaskan artefak media generik.

Name Jenis Deskripsi
metadataType bilangan bulat 0  (satu-satunya nilai)
title string opsional Judul konten yang deskriptif. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
subtitel string opsional Subjudul konten yang deskriptif. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
gambar Gambar[] opsional Array URL ke gambar yang terkait dengan konten. Nilai awal kolom dapat diberikan oleh pengirim dalam pesan Muat. Harus memberikan ukuran yang direkomendasikan
Tanggal rilis string (ISO 8601) opsional Tanggal dan waktu ISO 8601 konten ini dirilis. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load

FilmMediaMetadata

Menjelaskan artefak media film.

Name Jenis Deskripsi
metadataType bilangan bulat 1  (satu-satunya nilai)
title string opsional Judul konten yang deskriptif. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
subtitel string opsional Subjudul konten yang deskriptif. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
studio string opsional Studio yang merilis konten. Pemutar dapat mengambil studio secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Muat
gambar Gambar[] opsional Array URL ke gambar yang terkait dengan konten. Nilai awal kolom dapat diberikan oleh pengirim dalam pesan Muat. Harus memberikan ukuran yang direkomendasikan
Tanggal rilis string (ISO 8601) opsional Tanggal dan waktu ISO 8601 konten ini dirilis. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load

TvShowMediaMetadata

Mendeskripsikan artefak media episode acara televisi.

Name Jenis Deskripsi
metadataType bilangan bulat 2  (satu-satunya nilai)
serialTitle string opsional Judul deskriptif dari serial t.v. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
subtitel string opsional Subjudul deskriptif dari episode t.v. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
musim bilangan bulat opsional Nomor season acara t.v.
episode bilangan bulat opsional Nomor episode (dalam season) acara t.v.
gambar Gambar[] opsional Array URL ke gambar yang terkait dengan konten. Nilai awal kolom dapat diberikan oleh pengirim dalam pesan Muat. Harus memberikan ukuran yang direkomendasikan
OriginalAirDate string (ISO 8601) opsional Tanggal dan waktu ISO 8601 episode ini dirilis. Pemutar dapat mengambil originalAirDate secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Muat

MusicTrackMediaMetadata

Menjelaskan artefak media trek musik.

Name Jenis Deskripsi
metadataType bilangan bulat 3  (satu-satunya nilai)
namaalbum string opsional Album atau koleksi tempat lagu ini diambil. Pemutar dapat mengambil albumName secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Muat
title string opsional Nama trek (misalnya, judul lagu). Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
albumArtis string opsional Nama artis yang terkait dengan album yang menampilkan lagu ini. Pemutar dapat mengambil albumArtist secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
artis string opsional Nama artis yang terkait dengan trek media. Pemutar dapat mengambil artis secara terpisah menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
komposer string opsional Nama komposer yang terkait dengan trek media. Pemutar dapat mengambil komposer secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
nomorPelacakan bilangan bulat opsional Jumlah lagu di album
discNumber bilangan bulat opsional Jumlah volume (misalnya, disk) album
gambar Gambar[] opsional Array URL ke gambar yang terkait dengan konten. Nilai awal kolom dapat diberikan oleh pengirim dalam pesan Muat. Harus memberikan ukuran yang direkomendasikan
Tanggal rilis string (ISO 8601) opsional Tanggal dan waktu ISO 8601 konten ini dirilis. Pemutar dapat mengambil releaseDate secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load

PhotoMediaMetadata

Menjelaskan artefak media fotografi.

Name Jenis Deskripsi
metadataType bilangan bulat 4 (satu-satunya nilai)
title string opsional Judul foto. Pemutar dapat mengambil judul secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
artis string opsional Nama fotografer. Pemutar dapat mengambil artis secara terpisah menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
lokasi string opsional Lokasi lisan tempat foto diambil; misalnya, "Madrid, Spanyol". Pemutar dapat mengambil lokasi secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
latitude dobel opsional Nilai lintang geografis untuk lokasi tempat foto diambil. Pemutar dapat mengambil garis lintang secara mandiri menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Muat
longitude dobel opsional Nilai bujur geografis untuk lokasi tempat foto diambil. Pemutar dapat mengambil bujur secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Muat
lebar bilangan bulat opsional Lebar dalam piksel foto. Pemutar dapat mengambil lebar secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load
tinggi bilangan bulat opsional Tinggi dalam piksel foto. Pemutar dapat mengambil tinggi secara mandiri menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Muat
CreationDateTime string (ISO 8601) opsional Tanggal dan waktu ISO 8601 foto ini diambil. Pemutar dapat mengambil creationDateTime secara independen menggunakan content_id atau dapat diberikan oleh pengirim dalam pesan Load

StatusMedia

Menjelaskan status artefak media saat ini sehubungan dengan sesi.

Name Jenis Deskripsi
IDSesi bilangan bulat ID unik untuk pemutaran sesi tertentu ini. ID ini ditetapkan oleh penerima di LOAD dan dapat digunakan untuk mengidentifikasi instance pemutaran tertentu. Misalnya, dua pemutaran "Wish you were here" dalam sesi yang sama masing-masing akan memiliki mediaSessionId yang unik.
media Informasi Media opsional (untuk pesan status) Deskripsi lengkap tentang konten yang sedang diputar. Hanya dikembalikan dalam pesan status jika MediaInformation telah berubah.
rasio pemutaran float Menunjukkan apakah waktu media sedang berlangsung, dan berapa rasionya. Hal ini tidak bergantung pada status pemutar karena waktu media dapat berhenti dalam status apa pun. 1,0 adalah waktu reguler, 0,5 adalah gerakan lambat
playerState enum (string)

Menjelaskan status pemutar sebagai salah satu dari yang berikut:

  • IDLE Pemutar belum dimuat
  • PLAYING Pemutar aktif memutar konten
  • BUFFERING Pemutar berada dalam mode PLAY, tetapi tidak aktif memutar konten (currentTime tidak berubah)
  • JEDA Pemutar dijeda
idleAlasan enum (string)

opsional Jika playerState adalah IDLE dan alasan IDLE diketahui, properti ini akan disediakan. Jika pemutar IDLE karena baru saja dimulai, properti ini tidak akan diberikan; jika pemutar berada dalam status lain, properti ini tidak boleh diberikan. Nilai berikut berlaku:

  • CANCELLED Pengirim meminta untuk menghentikan pemutaran menggunakan perintah STOP
  • INTERRUPTED Pengirim meminta untuk memutar media lain menggunakan perintah LOAD
  • SELESAI Pemutaran media selesai
  • ERROR Media terganggu karena error; misalnya, jika pemutar tidak dapat mendownload media karena masalah jaringan
waktusaat ini dobel Posisi pemutar media saat ini sejak awal konten, dalam detik. Jika ini konten live stream, kolom ini mewakili waktu dalam detik dari awal acara yang harus diketahui pemain.
supportedMediaCommands flags

Tanda yang menjelaskan perintah media yang didukung oleh pemutar media:

  • 1 Jeda
  • 2 Cari
  • 4 Volume streaming
  • 8 Bisukan audio
  • 16 Majukan
  • 32 Lewati mundur

Kombinasi dijelaskan sebagai penjumlahan; misalnya, Jeda+Cari+StreamVolume+Bisukan == 15.

volume Volume Volume aliran
datakustom Objek opsional Blob khusus aplikasi di data yang ditentukan oleh aplikasi penerima

Perintah dari pengirim ke penerima

Perintah ini mengontrol pemutar media. Semua objek customData pada pesan di bawah harus bersifat opsional (misalnya, penerima harus melakukan downgrade dengan benar jika data tidak diteruskan). Tindakan ini akan memungkinkan aplikasi remote control generik berfungsi dengan benar.

Pemuatan

Memuat konten baru ke pemutar media.

Name Jenis Deskripsi
ID permintaan bilangan bulat ID permintaan, untuk menghubungkan permintaan dan respons
jenis string LOAD (hanya nilai)
media Informasi Media Metadata yang akan dimuat (termasuk contentId) media
putar otomatis boolean

opsional (default-nya adalah benar) Jika parameter putar otomatis ditentukan, pemutar media akan mulai memutar konten ketika dimuat. Meskipun putar otomatis tidak ditentukan, penerapan pemutar media dapat memilih untuk segera memulai pemutaran. Jika pemutaran dimulai, status pemutar dalam respons harus ditetapkan ke BUFFERING, jika tidak, status harus disetel ke PAused

waktusaat ini dobel opsional Detik sejak awal konten. Jika konten merupakan konten live, dan posisi tidak ditentukan, streaming akan dimulai di posisi live
datakustom Objek opsional Blob data khusus aplikasi yang ditentukan oleh aplikasi pengirim
Tanggapan Pemicu Siaran Error
Tidak ada Perubahan status penerima Pesan Perubahan Status Media Status Pemain Tidak Valid
Pemuatan Gagal
Pemuatan Dibatalkan

Jeda

Menjeda pemutaran konten saat ini. Memicu notifikasi peristiwa STATUS ke semua aplikasi pengirim.

Name Jenis Deskripsi
IDSesi bilangan bulat ID sesi media yang akan dijeda
ID permintaan bilangan bulat ID permintaan, yang akan digunakan untuk menghubungkan permintaan/respons
jenis string JEDA (hanya nilai)
datakustom Objek opsional Blob data khusus aplikasi yang ditentukan oleh aplikasi pengirim
Tanggapan Pemicu Siaran Error
Tidak ada Perubahan status penerima Pesan Perubahan Status Media Status Pemain Tidak Valid

Cari

Menetapkan posisi saat ini dalam aliran. Memicu notifikasi peristiwa STATUS ke semua aplikasi pengirim. Jika posisi yang diberikan berada di luar rentang posisi yang valid untuk konten saat ini, pemutar harus memilih posisi yang valid sedekat mungkin dengan posisi yang diminta.

Name Jenis Deskripsi
IDSesi bilangan bulat ID sesi media tempat posisi aliran data ditetapkan
ID permintaan bilangan bulat ID permintaan, untuk menghubungkan permintaan dan respons
jenis string SEEK (hanya nilai)
resumeState enum (string)

opsional Jika tidak disetel, status pemutaran tidak akan berubah; nilai berikut akan berlaku:

  • PLAYBACK_START Memaksa media untuk memulai
  • PLAYBACK_PAUSE Memaksa media untuk dijeda
waktusaat ini dobel opsional Detik sejak awal konten. Jika konten merupakan konten live, dan posisi tidak ditentukan, streaming akan dimulai di posisi live
datakustom Objek opsional Blob data khusus aplikasi yang ditentukan oleh aplikasi pengirim
Tanggapan Pemicu Siaran Error
Tidak ada Perubahan status penerima Pesan Perubahan Status Media Status Pemain Tidak Valid

Hentikan

Menghentikan pemutaran konten saat ini. Memicu notifikasi peristiwa STATUS ke semua aplikasi pengirim. Setelah perintah ini, konten tidak akan lagi dimuat dan mediaSessionId menjadi tidak valid.

Name Jenis Deskripsi
IDSesi bilangan bulat ID sesi media untuk konten yang akan dihentikan
ID permintaan bilangan bulat ID permintaan, untuk menghubungkan permintaan dan respons
jenis string STOP (hanya nilai)
datakustom Objek opsional Blob data khusus aplikasi yang ditentukan oleh aplikasi pengirim
Tanggapan Pemicu Siaran Error
Tidak ada Perubahan status penerima Pesan Perubahan Status Media Status Pemain Tidak Valid

Putar

Memulai pemutaran konten yang dimuat dengan panggilan pemuatan, pemutaran dilanjutkan dari posisi waktu saat ini.

Name Jenis Deskripsi
IDSesi bilangan bulat ID sesi media untuk konten yang akan diputar
ID permintaan bilangan bulat ID permintaan, untuk menghubungkan permintaan dan respons
jenis string PLAY (hanya nilai)
datakustom Objek opsional Blob data khusus aplikasi yang ditentukan oleh aplikasi pengirim
Tanggapan Pemicu Siaran Error
Tidak ada Perubahan status penerima Pesan Perubahan Status Media Status Pemain Tidak Valid

Mendapatkan Status

Mengambil status media.

Name Jenis Deskripsi
IDSesi bilangan bulat opsional ID sesi media dari media yang harus mengembalikan status media. Jika tidak ada yang disediakan, status untuk semua ID sesi media akan diberikan.
ID permintaan bilangan bulat ID permintaan, untuk menghubungkan permintaan dan respons
jenis string GET_STATUS (hanya nilai)
datakustom Objek opsional Blob data khusus aplikasi yang ditentukan oleh aplikasi pengirim
Tanggapan Pemicu Siaran Error
Pesan MediaStatus kepada pengirim yang memintanya Tidak ada Tidak ada Tidak ada

SetelVolume

Menyetel volume aliran media. Digunakan untuk efek fade-in/fade-out pada streaming media. (Catatan: volume penerima diubah menggunakan pengirim Web set setVolume.) Volume aliran tidak boleh digunakan bersama dengan penggeser volume atau tombol volume untuk mengontrol volume perangkat. Perubahan volume streaming tidak akan memicu UI apa pun di penerima.

Name Jenis Deskripsi
IDSesi bilangan bulat ID Sesi Media dari media yang volume streaming-nya diubah
ID permintaan bilangan bulat ID permintaan, untuk menghubungkan permintaan dan respons
jenis string VOLUME (hanya nilai)
volume Volume Volume aliran
datakustom Objek opsional Blob data khusus aplikasi yang ditentukan oleh aplikasi pengirim
Tanggapan Pemicu Siaran Error
Tidak ada Perubahan status penerima Pesan Perubahan Status Media Status Pemain Tidak Valid

Pesan dari penerima ke pengirim

Penerima mengirim dua jenis pesan:

  • Error: Pesan Unicast yang dikirim saat ada respons error terhadap permintaan pengirim.
  • Status: Pesan siaran.
    • Konsekuensi dari tindakan yang dimulai pengirim. Akan berisi requestId permintaan yang menyebabkan perubahan.
    • Spontan: Misalnya, karena perubahan yang dipicu oleh aplikasi penerima. RequestId akan menjadi 0.

Error: Status Pemain Tidak Valid

Dikirim saat permintaan dari pengirim tidak dapat dipenuhi karena pemutar tidak dalam status yang valid. Misalnya, jika aplikasi belum membuat elemen media.

Name Jenis Deskripsi
ID permintaan bilangan bulat ID permintaan yang menyebabkan error ini
jenis string INVALID_MAIN_STATE(hanya nilai)
datakustom Objek opsional Blob khusus aplikasi di data yang ditentukan oleh aplikasi penerima

Error: Pemuatan Gagal

Dikirim saat permintaan pemuatan gagal. Status pemutar akan menjadi IDLE.

Name Jenis Deskripsi
ID permintaan bilangan bulat ID permintaan yang menyebabkan error ini
jenis string LOAD_ GAGAL (hanya nilai)
datakustom Objek opsional Blob khusus aplikasi di data yang ditentukan oleh aplikasi penerima

Kesalahan: Pemuatan Dibatalkan

Dikirim saat permintaan pemuatan dibatalkan (permintaan pemuatan kedua diterima).

Name Jenis Deskripsi
ID permintaan bilangan bulat ID permintaan yang menyebabkan error ini
jenis string LOAD_CANCELLED (hanya nilai)
datakustom Objek opsional Blob khusus aplikasi di data yang ditentukan oleh aplikasi penerima

Error: Permintaan Tidak Valid

Dikirim saat permintaan tidak valid (misalnya, jenis permintaan tidak diketahui).

Name Jenis Deskripsi
ID permintaan bilangan bulat ID permintaan yang menyebabkan error ini
jenis string INVALID_REQUEST (hanya nilai)
alasan Enum (string)

Nilai:

  • INVALID_COMMAND Perintah tidak didukung
  • duplicate_REQUESTID ID permintaan tidak unik (penerima memproses permintaan dengan ID yang sama)
datakustom Objek opsional Blob khusus aplikasi di data yang ditentukan oleh aplikasi penerima

Status media

Dikirim setelah perubahan status atau setelah permintaan status media. Hanya objek MediaStatus yang berubah atau diminta yang akan dikirim.

Name Jenis Deskripsi
ID permintaan bilangan bulat ID yang digunakan untuk mengaitkan respons status ini dengan permintaan yang menghasilkannya atau 0 jika pesan status bersifat spontan (tidak dipicu oleh permintaan pengirim). Aplikasi pengirim akan menghasilkan ID permintaan unik dengan memilih angka acak dan terus meningkatkannya (tidak akan menggunakan 0).
jenis string MEDIA_STATUS (hanya nilai)
status StatusMedia[] Array objek Status Media. CATATAN: elemen media di MediaStatus hanya akan ditampilkan jika telah berubah.
datakustom Objek opsional Blob khusus aplikasi di data yang ditentukan oleh aplikasi penerima