Перейти к основному содержимому

Управление громкостью

Volume Control предоставляет сведения о возможностях регулировки, текущий снимок громкости и команды для точной или пошаговой настройки поддерживаемых каналов.

Возможности

Реализация с помощью AI

Разработка с AI

Реализуйте этот сценарий с AI

Используйте официальный навык «Управление громкостью AIBuds» и адаптируйте сценарий к приложению.

Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/manage-aibuds-volume. Используйте этот навык, чтобы реализовать «Управление громкостью AIBuds» в данном iOS-проекте и проверить результат.
Открыть официальный навык

Начало работы

  1. Подключите устройство — дождитесь подключения и готовности.
  2. Проверьте протокол — убедитесь в поддержке DeviceVolumeControlAPI.
  3. Получите возможность — прочитайте volumeSetCapability до отображения элементов управления.
  4. Получите текущие значения — используйте необязательный снимок volumesInfo.
  5. Настройте поддерживаемый канал — передайте значение DeviceVolumeType и уровень от 0 до 100.

Основные понятия

Возможности регулировки

VolumeSetCapability сообщает .none, .common или .advanced.

  • .none — настройка громкости через SDK недоступна.
  • .common — доступны системные подсказки, медиа и громкость звонка.
  • .advanced дополнительно содержит громкость локального воспроизведения в снимке, однако текущий открытый SDK не позволяет её изменять.

Каналы громкости

Сейчас DeviceVolumeType включает системные подсказки, воспроизведение медиа и звук звонка. Каждый сеттер принимает уровень от 0 до 100.

Справочник протоколов

Управление громкостью доступно через DeviceVolumeControlAPI:

Swift
guard let device = device as? DeviceVolumeControlAPI else {
    print("Device does not support DeviceVolumeControlAPI")
    return
}

Рекомендации

  1. Проверяйте возможность: не показывайте элементы изменения для .none.
  2. Проверяйте уровень: точное значение должно находиться в диапазоне от 0 до 100.
  3. Ограничивайте частоту непрерывных элементов: не отправляйте команду для каждого промежуточного положения ползунка.
  4. Следите за изменениями: используйте didVolumesChanged, если интерфейс должен учитывать обновления устройства.

Примечания

  • volumesInfo является необязательным; отдельные значения также могут отсутствовать.
  • Текущий SDK читает localPlaybackVolume, но не может изменять его отдельно. Добавляйте такой элемент управления только после появления открытого API записи.
  • Аппаратные элементы или другие клиенты могут изменить громкость после чтения снимка.