Các nghiên cứu điển hình
Instagram và Facebook mang đến trải nghiệm phát tức thì và tăng cường mức độ tương tác của người dùng bằng Media3 PreloadManager
4 phút đọc
Trong thế giới mạng xã hội năng động, sự chú ý của người dùng có thể đến và đi rất nhanh. Các ứng dụng của Meta (Facebook và Instagram) là một trong những nền tảng xã hội lớn nhất thế giới và phục vụ hàng tỷ người dùng trên toàn cầu. Đối với Meta, việc cung cấp video một cách liền mạch không chỉ là một tính năng mà còn là cốt lõi của trải nghiệm người dùng. Video dạng ngắn, đặc biệt là Bảng tin Facebook và Instagram Reels, đã trở thành động lực chính thúc đẩy mức độ tương tác. Chúng cho phép người dùng thể hiện sự sáng tạo và tiêu thụ nội dung nhanh chóng, kết nối và giải trí cho mọi người trên khắp thế giới.
Bài đăng trên blog này sẽ đưa bạn đi qua hành trình Meta chuyển đổi trải nghiệm phát video cho hàng tỷ người dùng bằng cách cung cấp trải nghiệm phát tức thì thực sự.
Khoảng cách về độ trễ trong video dạng ngắn
Video dạng ngắn dẫn đến các hoạt động tương tác có nhịp độ rất nhanh khi người dùng nhanh chóng lướt qua nguồn cấp dữ liệu của họ. Việc chuyển đổi liền mạch giữa các video trong một nguồn cấp dữ liệu luôn thay đổi sẽ tạo ra những rào cản riêng đối với việc phát tức thì. Do đó, chúng ta cần các giải pháp vượt xa bộ nhớ đệm trên đĩa truyền thống và các chiến lược phát lại phản ứng tiêu chuẩn.
Con đường phía trước với Media3 PreloadManager
Để giải quyết những thay đổi trong thói quen tiêu thụ do sự gia tăng nội dung dạng ngắn và những hạn chế của cấu trúc phát lại dạng dài truyền thống, Jetpack Media3 đã giới thiệu PreloadManager. Thành phần này cho phép nhà phát triển vượt ra ngoài bộ nhớ đệm của ổ đĩa, cung cấp khả năng kiểm soát và tuỳ chỉnh chi tiết để giữ cho nội dung nghe nhìn sẵn sàng trong bộ nhớ trước khi người dùng nhấn nút phát. Hãy đọc loạt bài đăng trên blog này để hiểu các chi tiết kỹ thuật về việc phát nội dung nghe nhìn bằng PreloadManager.
Cách Meta đạt được trải nghiệm phát tức thì thực sự
Sự phức tạp hiện có
Trước đây, Meta đã sử dụng kết hợp tính năng khởi động (để chuẩn bị cho trình phát) và tìm nạp trước (để lưu nội dung vào bộ nhớ đệm trên đĩa) để phân phối video. Mặc dù các phương thức này giúp cải thiện hiệu quả mạng, nhưng chúng lại gây ra những thách thức đáng kể. Tính năng khởi động yêu cầu khởi tạo nhiều thực thể trình phát theo trình tự, tiêu tốn nhiều bộ nhớ và giới hạn việc tải trước chỉ cho một vài video. Nhu cầu cao về tài nguyên này có nghĩa là có thể áp dụng một giải pháp mạnh mẽ có khả năng mở rộng hơn để cung cấp trải nghiệm phát tức thì như mong đợi trên các nguồn cấp dữ liệu xã hội hiện đại, có khả năng cuộn nhanh.
Tích hợp Media3 PreloadManager
Để đạt được trải nghiệm phát thực sự tức thì, nhóm Media Foundation Client của Meta đã tích hợp Jetpack Media3 PreloadManager vào Facebook và Instagram. Họ đã chọn DefaultPreloadManager để hợp nhất hệ thống tải trước và phát lại. Việc tích hợp này yêu cầu tái cấu trúc kiến trúc hiện có của Meta để cho phép chia sẻ tài nguyên hiệu quả giữa các thực thể PreloadManager và ExoPlayer. Sự thay đổi chiến lược này mang lại một lợi thế kiến trúc quan trọng: khả năng song song hoá các tác vụ tải trước và quản lý nhiều video bằng một thực thể trình phát duy nhất. Điều này giúp tăng đáng kể khả năng tải trước đồng thời loại bỏ sự phức tạp về bộ nhớ cao của phương pháp trước đó.
Tối ưu hoá và điều chỉnh hiệu suất
Sau đó, nhóm đã thực hiện kiểm thử và lặp lại nhiều lần để tối ưu hoá hiệu suất trên hệ sinh thái thiết bị toàn cầu đa dạng của Meta. Việc tải trước tích cực ban đầu đôi khi gây ra các vấn đề, bao gồm tăng mức sử dụng bộ nhớ và làm chậm hiệu suất cuộn. Để giải quyết vấn đề này, họ đã tinh chỉnh việc triển khai bằng cách đo lường bộ nhớ cẩn thận, xem xét sự phân mảnh thiết bị và điều chỉnh hệ thống cho phù hợp với các mẫu giao diện người dùng cụ thể.
Tinh chỉnh việc triển khai cho phù hợp với các mẫu giao diện người dùng cụ thể
Meta đã áp dụng các chiến lược tải trước khác nhau và điều chỉnh hành vi cho phù hợp với các mẫu giao diện người dùng cụ thể của từng ứng dụng:
- Bảng tin Facebook: Giao diện người dùng ưu tiên video hiện đang hiển thị. Trình quản lý chỉ tải trước video hiện tại để đảm bảo video bắt đầu ngay khi người dùng tạm dừng cuộn. Việc tập trung vào "chỉ video hiện tại" giúp giảm thiểu dấu vết dữ liệu và bộ nhớ trong môi trường mà người dùng có thể thấy nhiều bài đăng tĩnh giữa các video. Mặc dù hệ thống hiện được thiết kế để chỉ tải trước video đang hiển thị, nhưng bạn có thể điều chỉnh để tải trước cả các video sắp tới (trong tương lai).
- Instagram Reels: Đây là một môi trường video thuần tuý, nơi người dùng vuốt theo chiều dọc. Đối với giao diện người dùng này, nhóm đã triển khai chiến lược "tải trước liền kề". PreloadManager giữ các video ngay sau Reel hiện tại sẵn sàng trong bộ nhớ. Phương pháp hai chiều này đảm bảo rằng dù người dùng vuốt lên hay xuống, quá trình chuyển đổi vẫn diễn ra tức thì và mượt mà. Kết quả là chất lượng trải nghiệm (QoE) được cải thiện đáng kể, bao gồm cả việc cải thiện thời gian bắt đầu phát và thời gian hiển thị khung hình đầu tiên cho người dùng.
Mở rộng quy mô cho hệ sinh thái thiết bị toàn cầu đa dạng
Việc mở rộng quy mô ngăn xếp video hiệu suất cao trên hàng tỷ thiết bị đòi hỏi nhiều hơn là chỉ tải trước tích cực; mà còn đòi hỏi trí thông minh. Meta gặp phải những thách thức ban đầu về áp lực bộ nhớ và độ trễ khi cuộn, đặc biệt là trên phần cứng tầm trung đến tầm thấp. Để giải quyết vấn đề này, họ đã xây dựng một hệ thống Phát hiện mức độ căng thẳng của thiết bị xung quanh việc triển khai Media3. Giờ đây, các ứng dụng giám sát tín hiệu I/O và CPU theo thời gian thực. Nếu một thiết bị đang chịu tải nặng, quá trình tải trước sẽ bị tạm dừng để ưu tiên khả năng phản hồi của giao diện người dùng.
Việc tối ưu hoá nhận biết thiết bị này đảm bảo rằng lợi ích của việc phát tức thì không phải trả giá bằng sự ổn định của hệ thống, cho phép ngay cả những người dùng có phần cứng cũ hơn cũng có thể trải nghiệm nguồn cấp dữ liệu mượt mà, không bị gián đoạn.
Lợi ích về kiến trúc và tình trạng mã
Ngoài các chỉ số hướng đến người dùng, việc di chuyển sang Media3 PreloadManager còn mang lại những lợi ích lâu dài về kiến trúc. Mặc dù quá trình tích hợp và điều chỉnh cần nhiều lần lặp lại để cân bằng hiệu suất, nhưng cơ sở mã kết quả lại dễ bảo trì hơn. Nhóm nhận thấy rằng API PreloadManager được tích hợp gọn gàng với hệ sinh thái Media3 hiện có, cho phép chia sẻ tài nguyên tốt hơn. Đối với Meta, việc áp dụng Media3 PreloadManager là một khoản đầu tư chiến lược vào tương lai của việc tiêu thụ video.
Bằng cách áp dụng tính năng tải trước và thêm các cổng thông minh cho thiết bị, họ đã tăng thành công tổng thời gian xem trên các ứng dụng của mình và cải thiện mức độ tương tác tổng thể của cộng đồng toàn cầu.
Tác động kết quả lên Instagram và Facebook
Kiến trúc chủ động mang lại những cải tiến tức thì và có thể đo lường được trên cả hai nền tảng.
- Facebook trải nghiệm thời gian bắt đầu phát nhanh hơn, giảm tỷ lệ phát bị giật và giảm số phiên kém chất lượng (như tải lại bộ đệm, thời gian bắt đầu bị trễ, chất lượng thấp hơn, v.v.), điều này dẫn đến tổng thời gian xem cao hơn.
- Instagram ghi nhận thời gian bắt đầu phát nhanh hơn và tăng tổng thời gian xem. Việc loại bỏ độ trễ khi tham gia (khoảng thời gian từ hành động của người dùng đến khung hình đầu tiên hiển thị) đã trực tiếp làm tăng các chỉ số tương tác. Việc giảm số lần gián đoạn do giảm bộ đệm có nghĩa là người dùng xem nhiều nội dung hơn, điều này thể hiện qua các chỉ số tương tác.
Những bài học kỹ thuật quan trọng ở quy mô lớn
Khi thói quen tiêu thụ nội dung nghe nhìn phát triển, nhu cầu về trải nghiệm tức thì sẽ tiếp tục tăng. Việc triển khai tính năng quản lý bộ nhớ chủ động và tối ưu hoá cho khả năng mở rộng quy mô và sự đa dạng của thiết bị đảm bảo rằng ứng dụng của bạn có thể đáp ứng những kỳ vọng này một cách hiệu quả.
- Ưu tiên tính năng tải trước thông minh
Tập trung vào việc mang lại trải nghiệm đáng tin cậy bằng cách giảm thiểu tình trạng giật và thời gian tải thông qua tính năng tải trước. Thay vì chỉ lưu vào bộ nhớ đệm trên đĩa đơn giản, việc tận dụng tính năng tải trước ở cấp độ bộ nhớ đảm bảo rằng nội dung đã sẵn sàng ngay khi người dùng tương tác với nội dung đó.
- Điều chỉnh việc triển khai cho phù hợp với các mẫu giao diện người dùng
Tuỳ chỉnh hành vi tải trước theo giao diện người dùng của ứng dụng. Ví dụ: sử dụng tính năng tập trung vào "chỉ video hiện tại" cho các nguồn cấp dữ liệu hỗn hợp như Facebook để tiết kiệm bộ nhớ và chiến lược "tải trước liền kề" cho các môi trường dọc như Instagram Reels.
- Tận dụng Media3 để đảm bảo tình trạng mã lâu dài
Việc tích hợp với các API Media3 thay vì giải pháp lưu vào bộ nhớ đệm tuỳ chỉnh cho phép chia sẻ tài nguyên tốt hơn giữa trình phát và PreloadManager, cho phép bạn quản lý nhiều video bằng một thực thể trình phát duy nhất. Điều này dẫn đến một cơ sở mã có khả năng thích ứng với tương lai, giúp các nhóm kỹ thuật không chỉ dễ dàng duy trì và tối ưu hoá theo thời gian mà còn hưởng lợi từ các bản cập nhật tính năng mới nhất.
- Triển khai các tính năng tối ưu hoá nhận biết thiết bị
Mở rộng phạm vi tiếp cận thị trường bằng cách kiểm thử trên nhiều thiết bị, bao gồm cả các mẫu tầm trung đến tầm thấp. Sử dụng các tín hiệu theo thời gian thực như CPU, bộ nhớ và I/O để điều chỉnh các tính năng và mức sử dụng tài nguyên một cách linh hoạt.
Tìm hiểu thêm
Để bắt đầu và tìm hiểu thêm, hãy truy cập vào
- Khám phá tài liệu về Media3 PreloadManager.
- Xem ứng dụng mẫu để xem tính năng tải trước hoạt động.
Giờ bạn đã biết những bí mật để phát tức thì. Hãy dùng thử ngay!
Tiếp tục đọc
-
Các nghiên cứu điển hình
Monzo là một ngân hàng kỹ thuật số ở Vương quốc Anh với 15 triệu khách hàng và đang phát triển. Khi ứng dụng mở rộng quy mô, nhóm kỹ thuật đã xác định thời gian khởi động ứng dụng là một lĩnh vực quan trọng cần cải thiện nhưng lo ngại rằng việc này sẽ đòi hỏi những thay đổi đáng kể đối với cơ sở mã của họ.
Ben Weiss • 2 phút đọc
-
Các nghiên cứu điển hình
TikTok là một nền tảng video ngắn toàn cầu, nổi tiếng với cơ sở người dùng khổng lồ và các tính năng cải tiến.
Ben Trengrove, Ajesh Pai • 2 phút đọc
-
Các nghiên cứu điển hình
Việc xây dựng một ứng dụng Android cho thiết bị đeo có nghĩa là công việc thực sự bắt đầu khi màn hình tắt.
Breana Tate • 4 phút đọc
Nhận thông tin cập nhật
Nhận thông tin chi tiết mới nhất về quá trình phát triển Android được gửi đến hộp thư đến của bạn hằng tuần.