Saya telah mencari di internet selama berhari-hari sekarang tentang bagaimana menerapkan fitur streaming video dari ponsel android ke ponsel android lain melalui koneksi WiFi tetapi sepertinya saya tidak dapat menemukan sesuatu yang berguna. Saya mencari di pengembang android untuk kode sampel, stackoverflow, google, blog android tetapi tidak ada. Yang dapat saya temukan hanyalah semacam solusi telepon-ke-desktop atau desktop-ke-telepon untuk streaming, tetapi tidak ada yang dapat saya pinjam dalam penerapan saya.
Saya perlu mengontrol robot menggunakan arduino ADK, jadi saya menggunakan 2 ponsel, satu yang akan dipasang pada robot dan yang lainnya akan menerima aliran video dari robot. Saya menyebutkan ini karena saya berusaha mencapai penundaan terkecil antara waktu siaran dan waktu menonton.
Saya menulis 2 aplikasi, satu aplikasi utama untuk mengontrol robot (dari ponsel genggam) yang akan mengontrol aplikasi budak dan menerima aliran, dan aplikasi budak kedua yang akan berjalan di ponsel yang diikat robot, mengendalikan motor / aktuator / streaming ke aplikasi master. Sayangnya saya tidak dapat menggunakan aplikasi pihak ketiga. Saya perlu mengintegrasikan kode aliran video ke dalam 2 aplikasi saya.
Pilihan apa yang ada untuk mencapai ini? Juga sangat sulit untuk dilakukan karena saya tidak pernah bekerja dengan videostreaming, meskipun saya cukup bagus dalam pengembangan Java dan Android. Bagaimana saya harus menyandikan / mendekode aliran, bagaimana cara memulai koneksi, apakah saya perlu bekerja dengan UDP, bukan TCP / IP? Saya benar-benar tidak tahu harus mulai dari mana, tanpa kode sampel di mana pun. Saya cukup yakin ini bisa tercapai. Saya tidak dapat menemukan sesuatu yang berguna untuk membantu saya memulai ke arah yang benar.
Saya menemukan spydroid tetapi menggunakan VLC di desktop jadi itu tidak baik untuk saya.
EDIT: Lihat blog Cagney Moreau . Dia menjelaskan secara rinci tentang penerapan ini.
sumber
Jawaban:
Jika Anda tidak memerlukan fungsionalitas perekaman dan pemutaran di aplikasi Anda, menggunakan aplikasi dan pemutar streaming off-the-shelf adalah pilihan yang masuk akal.
Namun, jika Anda memang membutuhkannya di aplikasi Anda, Anda harus melihat ke MediaRecorder API (untuk aplikasi server / kamera) dan MediaPlayer (untuk aplikasi klien / pemutar).
Kode contoh cepat untuk server:
Di sisi pemain, ini agak rumit, Anda dapat mencoba ini:
Sayangnya mediaplayer cenderung tidak seperti ini, jadi Anda memiliki beberapa opsi: (a) menyimpan data dari soket ke file dan (setelah Anda memiliki sedikit data) bermain dengan mediaplayer dari file, atau (b) membuat http kecil proxy yang berjalan secara lokal dan dapat menerima permintaan GET dari mediaplayer, membalas dengan header HTTP, lalu menyalin data dari server jarak jauh ke sana. Untuk (a) Anda akan membuat mediaplayer dengan jalur file atau url file, untuk (b) berikan URL http yang menunjuk ke proxy Anda.
Lihat juga:
Streaming video langsung dari ponsel ke ponsel menggunakan soket fd
MediaPlayer tersendat saat memulai pemutaran mp3
sumber
setDataSource(MediaDataSource)
sebagai gantiFileDescriptor
. MenerapkanMediaDataSource
akan memungkinkan Anda melakukan pembacaan dan buffering jaringan Anda sendiri, tanpa menulis ke file temp.Saya pernah mengerjakan sesuatu seperti ini sekali, tetapi mengirim video dan memutarnya secara real time adalah hal yang sangat rumit. Saya sarankan Anda bekerja dengan PNG saja. Dalam implementasinya Apa yang saya lakukan adalah menangkap PNG menggunakan kamera host dan kemudian mengirimkannya melalui jaringan ke klien, yang akan menampilkan gambar segera setelah diterima dan meminta gambar berikutnya dari host. Karena Anda menggunakan wifi, komunikasi itu akan cukup cepat untuk mendapatkan sekitar 8-10 gambar per detik (hanya perkiraan, saya bekerja di Bluetooth). Jadi ini akan terlihat seperti video berkelanjutan tetapi dengan usaha yang jauh lebih sedikit. Untuk komunikasi, Anda dapat menggunakan soket UDP (Lebih cepat dan tidak rumit) atau DLNA (Tidak yakin cara kerjanya).
sumber
Anda dapat menggunakan IP Webcam , atau mungkin menggunakan DLNA. Misalnya perangkat Samsung hadir dengan aplikasi bernama AllShare yang dapat berbagi dan mengakses perangkat berkemampuan DLNA di jaringan. Saya pikir IP Webcam adalah pilihan terbaik Anda. Anda harus dapat membuka aliran yang dibuatnya menggunakan pemutar Video MX atau semacamnya.
sumber
Anda dapat memeriksa VLC android itu dapat melakukan streaming dan memutar video, jika Anda ingin lebih banyak bermain, Anda dapat memeriksa GIT mereka untuk menganalisis apa yang mereka lakukan. Semoga berhasil!
sumber