Chế độ loa thanh động

Với sự hỗ trợ của khung Android 14, các nhà sản xuất thiết bị gốc (OEM) có thể định cấu hình hộp giải mã tín hiệu (STB) và thiết bị phát trực tuyến (OTT) có loa tích hợp hoặc loa được kết nối để trở thành loa thanh cho các thiết bị được kết nối. Chế độ loa thanh động (DSM) trong Android 14 hỗ trợ các thuộc tính điều khiển thiết bị điện tử tiêu dùng (CEC) HDMI cho loa thanh, chẳng hạn như kênh phản hồi âm thanh (ARC) và tính năng điều khiển âm thanh hệ thống.

Tính năng này chỉ nhắm đến các thiết bị phát lại CEC của Android TV.

Yêu cầu

Để áp dụng tính năng loa thanh, các nhà sản xuất thiết bị gốc (OEM) phải đáp ứng các yêu cầu về thiết bị và Giao diện người dùng hệ thống được liệt kê trong phần này.

Yêu cầu về thiết bị

Để hỗ trợ DSM, thiết bị STB hoặc OTT phải đáp ứng các yêu cầu sau:

  • Thiết bị phải chạy Android 14.
  • Khi DSM được bật, thiết bị phải hoạt động như một loa thanh theo thông số kỹ thuật HDMI CEC, chẳng hạn như ARC.
  • Thiết bị phải có khả năng phát âm thanh trên loa tích hợp hoặc loa được kết nối.
  • Khi thiết bị không phải là nguồn đang hoạt động, tất cả nội dung nghe nhìn phải được tạm dừng trên thiết bị để hạn chế mức tiêu thụ điện.

Yêu cầu về Giao diện người dùng hệ thống

Để hỗ trợ DSM, các nhà sản xuất thiết bị gốc (OEM) phải đáp ứng các yêu cầu sau khi thiết kế Giao diện người dùng hệ thống:

  • Nhãn giao diện người dùng phải tham chiếu đến ARC hoặc Kênh phản hồi âm thanh (ARC).
  • Giao diện người dùng phải thông báo cho người dùng kết nối thiết bị với cổng ARC của TV để thiết lập kết nối ARC.
  • Giao diện người dùng phải thông báo cho người dùng rằng tính năng này có thể không hoạt động như dự kiến nếu một loa thanh hoặc bộ thu âm thanh và video (AVR) khác được kết nối trong mạng HDMI.
  • Giao diện người dùng phải thông báo cho người dùng rằng màn hình có thể nhấp nháy khi chuyển đổi chế độ cài đặt.
  • Nếu thiết bị không có loa tích hợp, thì DSM phải bị tắt theo mặc định.

Cách tốt nhất là bạn nên sử dụng trình đơn Màn hình và âm thanh làm vị trí cho chế độ cài đặt của người dùng để bật hoặc tắt ARC, như minh hoạ trong quá trình triển khai SysUI.

Triển khai khung

Việc triển khai chức năng loa thanh CEC và việc phân bổ động địa chỉ logic 5 tồn tại trong khung Android. Khung này phân bổ địa chỉ logic khi chế độ cài đặt loa thanh được bật để thiết bị trở thành loa thanh một cách linh hoạt. Khi chế độ cài đặt loa thanh bị tắt, khung này sẽ huỷ phân bổ địa chỉ logic.

Dựa trên hoạt động đầu vào của người dùng trên Giao diện người dùng hệ thống, HdmiControlManager đặt CEC_SETTING_NAME_SOUNDBAR_MODE thành SOUNDBAR_MODE_ENABLED hoặc SOUNDBAR_MODE_DISABLED. Giá trị mặc định của CEC_SETTING_NAME_SOUNDBAR_MODE được đặt thành SOUNDBAR_MODE_DISABLED.

HdmiControlService theo dõi sự thay đổi trong chế độ cài đặt CEC_SETTING_NAME_SOUNDBAR_MODE để thực hiện những việc sau:

  • Xác thực xem có thiết bị phát lại cục bộ hay không và thuộc tính ARC có được hỗ trợ hay không.
  • Kích hoạt việc phân bổ địa chỉ logic để thêm hoặc xoá thiết bị âm thanh cục bộ.
  • Đảm bảo rằng trạng thái của chế độ cài đặt được giữ nguyên nếu thiết bị được cắm nóng.

Hãy xem mẫu khai báo sau đây để đặt và nhận trạng thái của chế độ loa thanh:

    /**
     * Name of a setting deciding whether the Soundbar mode feature is enabled.
     * Before exposing this setting make sure the hardware supports it, otherwise, you may
     * experience multiple issues.
     *
     * @see HdmiControlManager#setSoundbarMode(int)
     */
    public static final String CEC_SETTING_NAME_SOUNDBAR_MODE = "soundbar_mode";
    /**
     * Soundbar mode feature enabled.
     */
    public static final int SOUNDBAR_MODE_ENABLED = 1;
    /**
     * Soundbar mode feature disabled.
     */
    public static final int SOUNDBAR_MODE_DISABLED = 0;

   /**
     * Set the status of Soundbar mode feature.
     *
     * This allows to enable/disable Soundbar mode on the playback device.
     * The setting's effect will be available on devices where the hardware supports this feature.
     * If enabled, an audio system local device will be allocated and try to establish an ARC
     * connection with the TV. If disabled, the ARC connection will be terminated and the audio
     * system local device will be removed from the network.
     */
    public void setSoundbarMode(@SoundbarMode int value) {
    }

    /**
     * Get the current status of Soundbar mode feature.
     *
     * Reflects whether Soundbar mode is currently enabled on the playback device.
     * If enabled, an audio system local device will be allocated and try to establish an ARC
     * connection with the TV. If disabled, the ARC connection will be terminated and the audio
     * system local device will be removed from the network.
     */
    public int getSoundbarMode() {}

Triển khai OEM

Để hỗ trợ tính năng loa thanh động, các nhà sản xuất thiết bị gốc (OEM) phải đảm bảo rằng phần cứng hỗ trợ tính năng này. Các nhà sản xuất thiết bị gốc (OEM) phải định cấu hình thiết bịtriển khai Giao diện người dùng hệ thống để cung cấp giao diện bắt buộc cho thông tin đầu vào của người dùng.

Triển khai thiết bị

Để hỗ trợ tính năng loa thanh trên thiết bị:

  1. Đưa thiết bị phát lại lên Android 14.
  2. Triển khai cổng HDMI ARC trong trình điều khiển.
  3. Giữ nguyên các giá trị RRO của config_cecSoundbarModeEnabled_defaultconfig_cecSoundbarModeDisabled_default không thay đổi trong config.xml để tính năng này vẫn bị tắt theo mặc định.

  4. Đảm bảo rằng thiết bị có loa tích hợp hoặc loa được kết nối để phát âm thanh và chỉnh sửa cấu hình chính sách âm thanh.

  5. Đặt thuộc tính hệ thống persist.sys.hdmi.property_arc_support thành true để cho biết rằng ARC được hỗ trợ.

  6. Hiển thị chế độ cài đặt để chuyển đổi chế độ loa thanh trong Giao diện người dùng hệ thống.

  7. Để gỡ lỗi, hãy sử dụng lệnh adb sau đây để bật hoặc tắt tính năng loa thanh (1 để bật và 0 để tắt):

adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>

Triển khai SysUI

Phần này mô tả một quy trình giao diện người dùng mô phỏng được đề xuất để bật và tắt DSM. Chế độ cài đặt Đầu ra âm thanh nằm trong trình đơn Màn hình và âm thanh , như minh hoạ trong hình 1:

dsm_audio_output

Hình 1. Chế độ cài đặt đầu ra âm thanh trong trình đơn Màn hình và âm thanh.

Để DSM hoạt động, bạn phải bật chế độ cài đặt Bật HDMI-CEC. Bạn chỉ có thể bật chế độ cài đặt ARC nếu đã bật HDMI-CEC. Chế độ cài đặt ARC không có sẵn và bị tắt nếu HDMI-CEC bị tắt như minh hoạ trong hình 2. Trong quy trình giao diện người dùng sau đây, khi người dùng tắt chế độ cài đặt Bật HDMI-CEC trong trình đơn Màn hình và âm thanh rồi chọn Loa tại nhà, chế độ cài đặt ARC sẽ bị tắt. Người dùng có thể bật chế độ cài đặt Phát âm thanh trên TV bằng cách bật Bật HDMI-CEC.

dsm_ui_disable_arc

Hình 2. Giao diện người dùng cho tuỳ chọn ARC bị tắt.

Khi chế độ cài đặt HDMI-CEC được bật, người dùng có thể sử dụng chế độ cài đặt ARC trong phần Đầu ra âm thanh để bật và tắt DSM. Để bật DSM, người dùng làm theo quy trình giao diện người dùng trong hình 3. Trong quy trình giao diện người dùng sau đây, để bật chế độ loa thanh, người dùng chọn Loa tại nhà, rồi chọn và xác nhận chế độ cài đặt ARC. Để tắt DSM, người dùng tắt chế độ cài đặt ARC.

dsm_ui_enable_arc

Hình 3. Giao diện người dùng để bật DSM.

Xác nhận kết quả

Các nhà sản xuất thiết bị gốc (OEM) có thể thực hiện kiểm thử âm thanh để đảm bảo rằng loa của thiết bị phát lại phát âm thanh bắt nguồn từ TV hoặc từ các thiết bị khác được kết nối với bảng điều khiển TV.

Xác thực thủ công

Hãy sử dụng các trường hợp sau đây để xác thực thủ công hành vi dự kiến:

  • Đã bật chế độ cài đặt ARC :
    • TV tự tắt tiếng.
    • Âm thanh trên TV được định tuyến đến loa của thiết bị.
  • Đã tắt chế độ cài đặt ARC :
    • TV ngừng định tuyến âm thanh đến thiết bị.
    • TV bắt đầu phát âm thanh.
  • Đã bật chế độ cài đặt ARC và thiết bị được kết nối với cổng không phải ARC của TV:
    • Thiết bị không phát âm thanh của TV.
  • Đã bật chế độ cài đặt ARC và địa chỉ logic 5 đang được một thiết bị khác sử dụng trước khi thiết bị được kết nối:
    • Thiết bị hoạt động như một thiết bị phát lại thuần tuý, chứ không phải loa thanh.
  • Đã bật chế độ cài đặt ARC, địa chỉ logic 5 đang được thiết bị sử dụng và một hệ thống âm thanh khác được kết nối trong mạng:
    • Không có thay đổi nào trong hành vi loa thanh của thiết bị.
  • Đã bật chế độ cài đặt ARC , địa chỉ logic 5 đang được thiết bị kết nối với cổng không phải ARC sử dụng và một hệ thống âm thanh khác được kết nối với cổng ARC:
    • Kết nối ARC không được thiết lập với TV cho hệ thống âm thanh thứ hai vì hệ thống này sử dụng địa chỉ logic chưa đăng ký.
  • Đã bật chế độ cài đặt ARC và thiết bị được cắm nóng:
    • Thiết bị tuân theo hành vi bình thường như khi chế độ cài đặt được bật.

Xác thực CTS

CtsHdmiCecHostTestCases bạn phải vượt qua khi chế độ cài đặt loa thanh bị tắt. Kiểm thử HdmiCecSoundbarModeTest.java trong bộ kiểm thử CtsHdmiCecHostTestCases sẽ kiểm thử các chức năng của DSM.

Mặc dù không phải là yêu cầu về chứng nhận, hãy chạy CtsHdmiCecHostTestCases khi chế độ cài đặt loa thanh được bật để xác thực quá trình triển khai của bạn.

Hãy xem phần Kiểm thử CTS CEC cho thiết bị Android TV để chạy các kiểm thử CTS Android cho HDMI CEC.