Thông thường, đối với những app xem TV trực tuyến thì họ sẽ dùng HTTP Video Live Streaming(viết tắt là HLS). Nói sơ sơ về cơ chế hoạt động của cái này thì video sẽ được chia nhỏ(cỡ vài giây) thành các file gọi là segment, có đuôi là .ts
, địa chỉ url của các tệp segment này sẽ được lưu vào một file index với đuôi .m3u8
. Khi play một video hoặc luồng trực tiếp thì client sẽ gửi yêu cầu lấy nội dung file index đó, sau đó client đọc nội dung file index, tìm thấy địa chỉ url của segment đầu tiên rồi gửi một GET request để lấy file đó về rồi hiển thị ra cho bạn xem. Trong quá trình bạn xem video hoặc luồng trực tiếp đó, client sẽ ngầm tải các segment tiếp theo về để chuẩn bị cho bạn xem tiếp. Nếu bạn đang xem một video hay luồng trực tiếp nào đó mà thấy hiện tượng ngắt quãng xoay xoay thì đó là do client chưa kịp lấy đoạn segment tiếp theo cho bạn xem. Mà không phải trang nào cũng dùng HLS đâu, một số trang ví dụ như Youtube thì họ không dùng cái này. Để biết thêm chi tiết thì bạn có thể xem bài viết bên dưới:
Giờ, cách giải quyết vấn đề của bạn khá đơn giản(về mặt lý thuyết). Tải một thư viện video player nào đó hỗ trợ HLS, quăng cho nó link file m3u8 và setting vài thứ khác(nếu có) rồi tận hưởng. Tuy nhiên, có hai lưu ý dành cho bạn:
-
Bạn đang xài ké dịch vụ của người ta mà không được phép. Có nguy cơ họ(người tạo ra app xem TV online) phát hiện ra và fix lại. Không nên công bố công khai app trên nếu bạn không sẵn sàng cho việc họ phát hiện ra và fix lại.
-
Một số trang như FPT họ làm security chặt chẽ, không cho bạn xài ké. Nếu bạn không bypass được thì khỏi xài ké. Mà tất nhiên không phải trang nào cũng làm security chặt như bên FPT đâu :V.