Android 13 hỗ trợ âm thanh không gian bằng cách cung cấp API cho phép nhà phát triển ứng dụng biết liệu tổ hợp hiện tại của quá trình triển khai điện thoại, tai nghe được kết nối và chế độ cài đặt người dùng có cho phép phát nội dung âm thanh đa kênh theo cách sống động hay không.
Các OEM có thể cung cấp hiệu ứng âm thanh không gian có hỗ trợ tính năng theo dõi chuyển động của đầu với mức hiệu suất và độ trễ cần thiết, bằng cách sử dụng cấu trúc quy trình âm thanh mới và tích hợp khung cảm biến. Giao thức HID chỉ định cách đính kèm một thiết bị theo dõi đầu qua Bluetooth và cung cấp thiết bị đó dưới dạng một thiết bị HID thông qua khung cảm biến Android. Hãy xem phần Âm thanh không gian và tính năng theo dõi đầu để biết thêm các yêu cầu và thông tin xác thực.
Các nguyên tắc trên trang này áp dụng cho một giải pháp âm thanh không gian sử dụng các API âm thanh không gian và cấu trúc âm thanh mới trên điện thoại Android chạy Android 13 trở lên và tai nghe tương thích có cảm biến theo dõi chuyển động của đầu.
Nguyên tắc triển khai chế độ âm thanh không gian tĩnh và động
Âm thanh không gian tĩnh không yêu cầu tính năng theo dõi chuyển động của đầu, vì vậy, bạn không cần chức năng cụ thể trong tai nghe. Tất cả tai nghe có dây và không dây đều có thể hỗ trợ âm thanh không gian tĩnh.
Triển khai API
Các OEM PHẢI triển khai lớp Spatializer
được giới thiệu trong Android 12. Quy trình triển khai phải vượt qua các bài kiểm thử CTS được giới thiệu cho lớp Spatializer
.
Việc triển khai API mạnh mẽ đảm bảo rằng nhà phát triển ứng dụng (đặc biệt là các dịch vụ phát trực tuyến nội dung nghe nhìn) có thể dựa vào hành vi nhất quán trên toàn hệ sinh thái và chọn nội dung phù hợp nhất theo khả năng của thiết bị, ngữ cảnh kết xuất hiện tại và lựa chọn của người dùng.
Giao diện người dùng
Sau khi triển khai lớp Spatializer
, hãy xác thực rằng giao diện người dùng của bạn có hành vi sau:
Khi tai nghe có hỗ trợ âm thanh không gian được ghép nối, chế độ cài đặt thiết bị Bluetooth cho tai nghe này sẽ hiển thị nút bật/tắt Âm thanh không gian:
Hình 1. Chế độ cài đặt âm thanh không gian.
Bạn có thể dùng các chế độ cài đặt này khi tai nghe bị ngắt kết nối.
Trạng thái mặc định của âm thanh không gian sau khi ghép nối tai nghe lần đầu là đã bật.
Trạng thái do người dùng chọn (bật hoặc tắt) sẽ duy trì khi điện thoại khởi động lại hoặc khi người dùng huỷ ghép nối rồi ghép nối lại tai nghe.
Hành vi chức năng
Định dạng âm thanh
Hiệu ứng không gian hoá PHẢI kết xuất các định dạng âm thanh sau đây khi âm thanh không gian được bật và thiết bị kết xuất là tai nghe có dây hoặc tai nghe Bluetooth:
- AAC, 5.1 kênh
- PCM thô, 5.1 kênh
Để mang lại trải nghiệm tốt hơn cho người dùng, bạn nên hỗ trợ các định dạng/cấu hình kênh sau:
- Dolby Digital Plus
- 5.1.2, 7.1, 7.1.2, 7.1.4 kênh
Phát nội dung âm thanh nổi
Nội dung âm thanh nổi không được kết xuất thông qua công cụ hiệu ứng không gian hoá, ngay cả khi bạn bật âm thanh không gian. Nếu một quy trình triển khai cho phép không gian hoá nội dung âm thanh nổi, thì quy trình đó phải trình bày một giao diện người dùng tuỳ chỉnh cho phép người dùng dễ dàng bật hoặc tắt tính năng này. Khi bật âm thanh không gian, bạn phải có thể chuyển đổi giữa chế độ phát nội dung nhiều kênh được không gian hoá sang nội dung âm thanh nổi không được không gian hoá mà không cần thay đổi chế độ cài đặt của người dùng hoặc kết nối lại hoặc định cấu hình lại tai nghe. Quá trình chuyển đổi giữa nội dung âm thanh không gian và nội dung âm thanh nổi phải diễn ra mà không gây gián đoạn âm thanh.
Chuyển đổi và tính đồng thời của trường hợp sử dụng
Xử lý các trường hợp sử dụng đặc biệt như sau:
- Thông báo phải được kết hợp với nội dung âm thanh không gian theo cách tương tự như khi kết hợp với nội dung âm thanh không gian.
- Nhạc chuông phải được phép kết hợp với nội dung âm thanh không gian. Tuy nhiên, theo mặc định, cơ chế quyền phát âm thanh sẽ tạm dừng nội dung âm thanh không gian khi có nhạc chuông.
- Khi trả lời hoặc thực hiện cuộc gọi điện thoại hoặc cuộc gọi hội nghị truyền hình, chế độ phát âm thanh không gian phải tạm dừng. Quá trình phát âm thanh không gian phải tiếp tục với cùng chế độ cài đặt âm thanh không gian khi cuộc gọi kết thúc. Việc định cấu hình lại đường dẫn âm thanh để chuyển từ chế độ âm thanh không gian sang chế độ đàm thoại phải diễn ra đủ nhanh và liền mạch để không ảnh hưởng đến trải nghiệm gọi điện.
Kết xuất qua loa
Không bắt buộc phải hỗ trợ tính năng không gian hoá âm thanh qua loa hoặc chế độ xuyên âm.
Nguyên tắc triển khai tính năng theo dõi cử động đầu
Phần này tập trung vào âm thanh không gian động, có các yêu cầu cụ thể về tai nghe.
Giao diện người dùng
Sau khi triển khai và ghép nối tai nghe có hỗ trợ âm thanh không gian, hãy xác thực rằng giao diện người dùng của bạn có hành vi sau:
Trong phần cài đặt thiết bị Bluetooth, khi bạn bật chế độ cài đặt Âm thanh không gian cho tai nghe, chế độ cài đặt Theo dõi cử động đầu sẽ xuất hiện trong phần Âm thanh không gian:
Hình 2. Chế độ cài đặt âm thanh không gian và tính năng theo dõi chuyển động của đầu.
Chế độ cài đặt theo dõi chuyển động đầu sẽ KHÔNG xuất hiện khi âm thanh không gian bị tắt.
Trạng thái mặc định của tính năng theo dõi cử động đầu sau khi ghép nối kính lần đầu tiên được đặt thành đã bật.
Trạng thái mà người dùng đã chọn (bật hoặc tắt) phải duy trì trong quá trình khởi động lại điện thoại hoặc huỷ ghép nối và ghép nối lại tai nghe.
Hành vi chức năng
Báo cáo tư thế đầu
- Thông tin về tư thế đầu (theo toạ độ x, y và z) được gửi từ tai nghe đến thiết bị Android phải phản ánh nhanh chóng và chính xác các chuyển động đầu của người dùng.
- Báo cáo tư thế đầu qua đường liên kết Bluetooth phải tuân theo giao thức được xác định qua HID.
- Tai nghe chỉ được gửi thông tin theo dõi đầu đến điện thoại Android khi người dùng bật chế độ Theo dõi đầu trong giao diện người dùng cài đặt thiết bị Bluetooth.
Hiệu suất
Độ trễ
Độ trễ theo dõi đầu được xác định là khoảng thời gian từ khi chuyển động đầu được ghi lại bởi đơn vị đo lường quán tính (IMU) cho đến khi bộ chuyển đổi tai nghe phát hiện thấy sự thay đổi về âm thanh do chuyển động này gây ra. Độ trễ theo dõi chuyển động của đầu không được vượt quá 150 mili giây.
Tỷ lệ báo cáo tư thế đầu
Khi tính năng theo dõi đầu đang hoạt động, tai nghe phải báo cáo tư thế đầu theo cơ sở định kỳ được đề xuất là khoảng 20 mili giây. Để tránh kích hoạt logic phát hiện đầu vào cũ trên điện thoại trong quá trình truyền Bluetooth bị rung, thời gian tối đa giữa hai lần cập nhật không được vượt quá 40 mili giây.
Tối ưu hoá nguồn pin
Để tối ưu hoá mức tiêu thụ điện năng, bạn nên triển khai bằng cách sử dụng cơ chế chuyển đổi bộ mã hoá và giải mã Bluetooth và chọn chế độ có độ trễ do các giao diện HAL âm thanh và HAL âm thanh Bluetooth cung cấp.
Các hoạt động triển khai AOSP của khung âm thanh và ngăn xếp Bluetooth đã hỗ trợ các tín hiệu để kiểm soát việc chuyển đổi bộ mã hoá và giải mã. Nếu quá trình triển khai của OEM sử dụng HAL âm thanh chính cho âm thanh Bluetooth (còn gọi là chế độ giảm tải bộ mã hoá và giải mã), thì OEM phải đảm bảo rằng HAL âm thanh chuyển tiếp các tín hiệu đó giữa HAL âm thanh và ngăn xếp Bluetooth.
Chuyển đổi bộ mã hoá và giải mã
Khi bật âm thanh không gian động và tính năng theo dõi đầu, hãy sử dụng một bộ mã hoá và giải mã có độ trễ thấp, chẳng hạn như Opus. Khi phát nội dung âm thanh không gian, hãy sử dụng bộ mã hoá và giải mã có mức tiêu thụ điện năng thấp, chẳng hạn như Advanced Audio Coding (AAC).
Hãy tuân thủ các quy tắc sau trong quá trình chuyển đổi bộ mã hoá và giải mã:
- Chỉ theo dõi hoạt động trên các luồng đầu ra HAL âm thanh sau:
- Đầu ra của bộ mở rộng âm thanh chuyên dụng
- Các luồng dành riêng cho nội dung nghe nhìn, chẳng hạn như phát lại bộ nhớ đệm sâu hoặc bộ nhớ đệm nén
Khi tất cả các luồng liên quan đều ở trạng thái rảnh và luồng không gian hoá bắt đầu, hãy bắt đầu luồng Bluetooth với
isLowLatency
được đặt thànhtrue
để chỉ định một codec có độ trễ thấp.Khi tất cả các luồng liên quan đều ở trạng thái rảnh và một luồng nội dung nghe nhìn bắt đầu, hãy bắt đầu luồng Bluetooth bằng cách đặt
isLowLatency
thànhfalse
để chỉ định một codec công suất thấp.Nếu một luồng nội dung nghe nhìn đang hoạt động và luồng không gian hoá bắt đầu, hãy khởi động lại luồng Bluetooth với
isLowLatency
được đặt thànhtrue
.
Về phía tai nghe, tai nghe phải hỗ trợ cả bộ giải mã có độ trễ thấp và bộ giải mã tiêu thụ ít điện năng, đồng thời triển khai giao thức lựa chọn codec tiêu chuẩn.
Điều chỉnh chế độ độ trễ
Chế độ độ trễ được điều chỉnh khi bạn chọn bộ mã hoá và giải mã có độ trễ thấp.
Tuỳ thuộc vào việc chế độ theo dõi đầu có bật hay không, chế độ điều chỉnh độ trễ sẽ sử dụng các cơ chế hiện có để giảm hoặc tăng độ trễ nhằm đạt được sự thoả hiệp tốt nhất giữa độ trễ, nguồn điện và chất lượng âm thanh. Khi bạn bật âm thanh không gian và tính năng theo dõi chuyển động đầu, hệ thống sẽ chọn chế độ có độ trễ thấp. Khi âm thanh không gian được bật và tính năng theo dõi chuyển động của đầu bị tắt, chế độ không có độ trễ sẽ được chọn. Việc điều chỉnh độ trễ giúp tiết kiệm đáng kể năng lượng và tăng độ ổn định của đường truyền âm thanh Bluetooth khi chỉ yêu cầu âm thanh không gian tĩnh. Cơ chế điều chỉnh độ trễ phổ biến nhất là giảm hoặc tăng kích thước vùng đệm biến thiên trong tai nghe Bluetooth.
Hãy xem phần Theo dõi đầu qua âm thanh năng lượng thấp để biết cách điều chỉnh chế độ độ trễ cho âm thanh năng lượng thấp.