Sử dụng USB DAC với đầu Joying

ngochoangimsat

Administrator
Trong khuôn khổ bài viết này icar.vn xin giới thiệu đến các bạn cách thức để kích hoạt tính năng hỗ trợ usb DAC, bằng việc này, chiếc đầu android Joying của chúng ta sẽ đem đến một trải nghiệm âm thanh không còn phụ thuộc vào đầu nữa, hoàn toàn phó thác việc xử lý âm thanh cho các bộ DAC rời để đáp ứng yêu cầu nghe nhạc của mọi khách hàng.
Yêu cầu đầu android Joying phải được root trước khi thực hiện các bước dưới đây.
Bản chất của việc kích hoạt chức năng usb dac cho đầu là thay thế file audio_policy.conf trong thư mục /system/etc/ bằng file đã được điều chỉnh. Một khi đầu đã được root, việc thay thế rât đơn giản chỉ là copy và paste bằng phần mềm duyệt file nào đó hỗ trợ root (ví dụ root explorer). Sau khi thay thế cần bấm vào file này và sửa quyền truy cập (permissions) cho nó thành 0644.
Ngoài khả năng kích hoạt tính năng này trên đầu Joying, một loạt các đầu android khác cũng có thể làm điều tương tự, tất nhiên yêu cầu android 5.x trở lên.

Chỉ có một vấn đề với cách này trên đầu android joying là âm lượng được chỉnh trực tiếp trong mcu nên âm lượng qua đường usb luôn max 100%. Do vậy DAC của các bạn phải có nút chỉnh âm lượng riêng để vặn nhỏ tiếng lại. Chức năng chỉnh âm lượng trên dvd không có tác dụng

Nội dung file audio_policy.conf như sau:

Mã:
# Global configuration section: lists input and output devices always present on the device
# as well as the output device selected by default.
# Devices are designated by a string that corresponds to the enum in audio.h

global_configuration {
  attached_output_devices AUDIO_DEVICE_OUT_SPEAKER
  default_output_device AUDIO_DEVICE_OUT_SPEAKER
  attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_BLUETOOTH_A2DP
}

# audio hardware module section: contains descriptors for all audio hw modules present on the
# device. Each hw module node is named after the corresponding hw module library base name.
# For instance, "primary" corresponds to audio.primary.<device>.so.
# The "primary" module is mandatory and must include at least one output with
# AUDIO_OUTPUT_FLAG_PRIMARY flag.
# Each module descriptor contains one or more output profile descriptors and zero or more
# input profile descriptors. Each profile lists all the parameters supported by a given output
# or input stream category.
# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".

audio_hw_modules {
  primary {
    outputs {
      primary {
        sampling_rates 48000 | 44100
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_FM
        flags AUDIO_OUTPUT_FLAG_PRIMARY
      }
    }
    inputs {
      primary {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_VOICE_UPLINK|AUIDIO_CHANNEL_IN_VOICE_DNLINK|AUDIO_CHANNEL_IN_VOICE_UPLINK_DNLINK
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_FM_RX|AUDIO_DEVICE_IN_VOICE_CALL
      }
    }
  }
  a2dp {
    outputs {
      a2dp {
        sampling_rates 44100
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_OUT_ALL_A2DP
      }
    }
    inputs {
      primary {
        sampling_rates 48000 | 44100
        channel_masks AUDIO_CHANNEL_IN_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_IN_BLUETOOTH_A2DP
      }
    }
  }
  usb {
    outputs {
      usb_accessory {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_OUT_USB_ACCESSORY
      }
      usb_device {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_OUT_USB_DEVICE
      }
    }
    inputs {
      usb_device {
        sampling_rates dynamic
        channel_masks dynamic
        formats dynamic
        devices AUDIO_DEVICE_IN_USB_DEVICE
      }
    }
  }
  r_submix {
    outputs {
      submix {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
      }
    }
    inputs {
      submix {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
      }
    }
  }
}



Nguồn bài viết:
https://forum.xda-developers.com/android-auto/android-head-units/joying-2gb-sofia-headunits-common-t3577217
Thảo luận về cách sử dụng DAC xem tại đây: https://forum.xda-developers.com/android-auto/android-head-units/android-5-1-head-unit-usb-audio-dac-t3426604
 

Đính kèm

Sửa lần cuối:
Top