Chế độ loa thanh động

Với khả năng hỗ trợ khung Android 14, OEM có thể định cấu hình hộp set-top (STB) và thiết bị phát trực tuyến (OTT) có loa tích hợp hoặc được kết nối để làm 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 HDMI (CEC) cho loa thanh, chẳng hạn như kênh trả về âm thanh (ARC) và đ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 Android TV CEC.

Yêu cầu

Để sử dụng tính năng loa thanh, 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 nêu 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 tuân 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 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ị, giới hạn mức tiêu thụ điện năng của thiết bị.

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

Để hỗ trợ DSM, 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 bao gồm tệp 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ư mong đợi nếu một loa thanh hoặc bộ thu video âm thanh (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 bật/tắt 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 hay nhất là bạn nên sử dụng trình đơn Display & Sound (Hiển thị và âm thanh) làm vị trí để người dùng thiết lập bật hoặc tắt ARC, như minh hoạ trong phần Triển khai SysUI.

Triển khai khung

Việc triển khai chức năng thanh âm thanh CEC và 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 động. Khi bạn tắt chế độ cài đặt thanh âm thanh, khung sẽ giải phóng đị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 sẽ đặ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 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 thiết bị phát cục bộ có tồn tại hay không và tài sản ARC có được hỗ trợ hay không.
  • Kích hoạt quá trình 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 nội dung khai báo sau đây để đặt và nhận trạng thái của chế độ thanh âm 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, nhà sản xuất thiết bị gốc (OEM) phải đảm bảo phần cứng hỗ trợ tính năng này. 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 hoạt động đầu vào của người dùng.

Triển khai thiết bị

Cách hỗ trợ tính năng loa thanh trên thiết bị:

  1. Hiển thị thiết bị phát trê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 trong config.xml để tính năng này vẫn tắt theo mặc định.

  4. Đảm bảo rằng thiết bị có loa tích hợp hoặ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 ARC được hỗ trợ.

  6. Hiển thị chế độ cài đặt để bật/tắt chế độ loa thanh trong System UI (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ả 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 Audio output (Đầu ra âm thanh) nằm trong trình đơn Display & Sound (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 Hiển thị 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 hoạt động và bị tắt nếu HDMI-CEC bị tắt như trong hình 2. Trong quy trình giao diện người dùng sau, 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 trong 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 của TV bằng cách bật tuỳ chọn 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 bật chế độ cài đặt HDMI-CEC, người dùng có thể sử dụng chế độ cài đặt ARC trong phần Audio output (Đầu ra âm thanh) để bật và tắt DSM. Để bật DSM, người dùng làm theo luồng giao diện người dùng trong hình 3. Trong quy trình thao tác trên giao diện người dùng sau đây, để bật chế độ loa thanh, người dùng chọn Home Speaker (Loa gia đình), sau đó chọn và xác nhận chế độ cài đặt ARC. Để tắt DSM, người dùng sẽ 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ả

OEM có thể kiểm tra âm thanh để đảm bảo loa của thiết bị phát 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

Sử dụng các tình huống sau để xác thực hành vi dự kiến theo cách thủ công:

  • Chế độ cài đặt ARC đang bật:
    • TV sẽ tự tắt tiếng.
    • Âm thanh của TV được chuyển đến loa của thiết bị.
  • Chế độ cài đặt ARC bị tắt:
    • TV sẽ ngừng định tuyến âm thanh đến thiết bị.
    • TV bắt đầu phát âm thanh.
  • Chế độ cài đặt ARC được bật và thiết bị được kết nối với một cổng không phải là ARC với TV:
    • Thiết bị không phát âm thanh của TV.
  • Chế độ cài đặt ARC được bật 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 thuần tuý, chứ không phải loa thanh.
  • Chế độ cài đặt ARC đang bật, đị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:
    • Hành vi của loa thanh trên thiết bị không thay đổi.
  • Chế độ cài đặt ARC đang bật, địa chỉ logic 5 đang được thiết bị sử dụng khi kết nối với cổng không phải ARC và một hệ thống âm thanh khác được kết nối với cổng ARC:
    • Không thiết lập được kết nối ARC 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ý.
  • Chế độ cài đặt ARC đang bật và thiết bị được cắm nóng:
    • Thiết bị sẽ tuân theo hành vi thông thường như khi bạn bật chế độ cài đặt này.

Xác thực CTS

Bạn phải truyền CtsHdmiCecHostTestCases khi chế độ cài đặt loa thanh bị tắt. Kiểm thử HdmiCecSoundbarModeTest.java trong bộ kiểm thử CtsHdmiCecHostTestCases kiểm thử các chức năng DSM.

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

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