Sebelumnya, saya kutipkan pengertian dan fungsi buffer dari laman Wikipedia Indonesia. Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua device atau antara device dan aplikasi. Buffering dilakukan untuk tiga buah alasan.
Alasan pertama adalah untuk men-cope dengan kesalahan yang terjadi karena perbedaan kecepatan antara produsen dengan konsumen dari sebuah stream data. Sebagai contoh, sebuah file sedang diterima melalui modem dan ditujukan ke media penyimpanan di hard disk. Kecepatan modem tersebut kira-kira hanyalah 1/1000 daripada hardisk. Jadi buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem. Ketika keseluruhan data di buffer sudah sampai, buffer tersebut dapat ditulis ke disk dengan operasi tunggal. Karena penulisan disk tidak terjadi dengan instan dan modem masih memerlukan tempat untuk menyimpan data yang berdatangan, maka dipakai 2 buah buffer. Setelah modem memenuhi buffer pertama, akan terjadi request untuk menulis di disk. Modem kemudian mulai memenuhi buffer kedua sementara buffer pertama dipakai untuk penulisan ke disk. Pada saat modem sudah memenuhi buffer kedua, penulisan ke disk dari buffer pertama seharusnya sudah selesai, jadi modem akan berganti kembali memenuhi buffer pertama dan buffer kedua dipakai untuk menulis. Metode double buffering ini membuat pasangan ganda antara produsen dan konsumen sekaligus mengurangi kebutuhan waktu di antara mereka.
Alasan kedua dari buffering adalah untuk menyesuaikan device-device yang mempunyai perbedaan dalam ukuran transfer data. Hal ini sangat umum terjadi pada jaringan komputer, dimana buffer dipakai secara luas untuk fragmentasi dan pengaturan kembali pesan-pesan yang diterima. Pada bagian pengirim, sebuah pesan yang besar akan dipecah ke paket-paket kecil. Paket-paket tersebut dikirim melalui jaringan, dan penerima akan meletakkan mereka di dalam buffer untuk disusun kembali.
Alasan ketiga buffering adalah untuk mendukung copy semantics untuk aplikasi I/O (Input-Output). Sebuah contoh akan menjelaskan apa arti dari copy semantics. Jika ada sebuah aplikasi yang mempunyai buffer data yang ingin dituliskan ke disk, aplikasi tersebut akan memanggil sistem penulisan, menyediakan pointer ke buffer, dan sebuah integer untuk menunjukkan ukuran bytes yang ingin ditulis. Setelah pemanggilan tersebut, apakah yang akan terjadi jika aplikasi tersebut mengubah isi dari buffer, dengan copy semantics, keutuhan data yang ingin ditulis sama dengan data waktu aplikasi ini memanggil sistem untuk menulis, tidak tergantung dengan perubahan yang terjadi pada buffer. Sebuah cara sederhana untuk sistem operasi untuk menjamin copy semantics adalah membiarkan sistem penulisan untuk mengkopi data aplikasi ke dalam buffer kernel sebelum mengembalikan kontrol kepada aplikasi. Jadi penulisan ke disk dilakukan pada buffer kernel, sehingga perubahan yang terjadi pada buffer aplikasi tidak akan membawa dampak apa-apa. Mengcopy data antara buffer kernel data aplikasi merupakan sesuatu yang umum pada sistem operasi, kecuali overhead yang terjadi karena operasi ini karena clean semantics. Kita dapat memperoleh efek yang sama yang lebih efisien dengan memanfaatkan virtual-memori mapping dan proteksi copy-on-wire dengan pintar.
Untuk masalah aplikasi TV Android yang tanpa buffering, dapat dikaitkan dengan alasan pertama dan kedua. Kita bisa ambil kesimpulan bahwa sebenarnya aplikasi Android semacam TV online .APK bekerja dengan jaringan data internet. Dimana setiap koneksi internet memiliki kecepatan yang berbeda, ada yang kenceng dan ada yang lemot.
Untuk itu, istilah buffering saat nonton TV streaming dengan HP Android sangat dikaitkan dengan kualitas kecepatan koneksi internet. Semakin cepat koneksi internet di HP Android, maka semakin sedikit ruang buffer, yang artinya seakan-akan tidak ada buffering sama sekali dan tayangan TV lancar tidak putus-putus.
Sebaliknya, jika koneksi internet Android lambat, maka ruang buffer semakin besar dan menumpuk. Artinya, proses buffering akan semakin lama sembari menunggu antrian data dari penyedia siaran TV (sebut saja produsen) menuju ke ponsel Android Anda (sebut saja konsumen).
Dengan penjelasan di atas, saya rasa Anda sudah mengerti alasan buffer terasa lama saat menonton TV dengan HP Android. Ya, alasan pertama dan utama adalah pada kecepatan koneksi internet. Oleh karena itu, kalau Anda mau menyaksikan siaran TV online di Android tanpa buffer, gunakanlah koneksi data dengan kecepatan tinggi.
Logikanya, bisa dikatakan semua aplikasi .APK TV streaming sama saja, semua memakai cara buffering sesuai kecepatan internet yang digunakan. Anda bebas memilih aplikasi TV online untuk Android apa saja, yang paling terkenal sebut saja Mivo TV, atau cari beberapa artikel yang membahas aplikasi TV di Android pada blog ini melalui tautan ini.
Semoga penjelasan tersebut di atas bisa memecahkan dan menjadi solusi bagi Anda yang menanyakan hal tersebut. Selamat menyaksikan televisi di Android yaa.