Управление громкостью
Volume Control предоставляет сведения о возможностях регулировки, текущий снимок громкости и команды для точной или пошаговой настройки поддерживаемых каналов.
Возможности
Возможности и уровни громкости
Получение возможностей регулировки и текущего снимка громкости устройства
Настройка громкости
Точная и пошаговая настройка поддерживаемых каналов громкости
Реализация с помощью AI
Разработка с AI
Реализуйте этот сценарий с AI
Используйте официальный навык «Управление громкостью AIBuds» и адаптируйте сценарий к приложению.
Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/manage-aibuds-volume. Используйте этот навык, чтобы реализовать «Управление громкостью AIBuds» в данном iOS-проекте и проверить результат.Начало работы
- Подключите устройство — дождитесь подключения и готовности.
- Проверьте протокол — убедитесь в поддержке
DeviceVolumeControlAPI. - Получите возможность — прочитайте
volumeSetCapabilityдо отображения элементов управления. - Получите текущие значения — используйте необязательный снимок
volumesInfo. - Настройте поддерживаемый канал — передайте значение
DeviceVolumeTypeи уровень от 0 до 100.
Основные понятия
Возможности регулировки
VolumeSetCapability сообщает .none, .common или .advanced.
.none— настройка громкости через SDK недоступна..common— доступны системные подсказки, медиа и громкость звонка..advancedдополнительно содержит громкость локального воспроизведения в снимке, однако текущий открытый SDK не позволяет её изменять.
Каналы громкости
Сейчас DeviceVolumeType включает системные подсказки, воспроизведение медиа и звук звонка. Каждый сеттер принимает уровень от 0 до 100.
Справочник протоколов
Управление громкостью доступно через DeviceVolumeControlAPI:
- Swift
- Objective-C
guard let device = device as? DeviceVolumeControlAPI else {
print("Device does not support DeviceVolumeControlAPI")
return
}id<AIBudsDeviceVolumeControlAPI> device = (id<AIBudsDeviceVolumeControlAPI>)self.device;
if (![device conformsToProtocol:@protocol(AIBudsDeviceVolumeControlAPI)]) {
NSLog(@"Device does not support AIBudsDeviceVolumeControlAPI");
return;
}Рекомендации
- Проверяйте возможность: не показывайте элементы изменения для
.none. - Проверяйте уровень: точное значение должно находиться в диапазоне от 0 до 100.
- Ограничивайте частоту непрерывных элементов: не отправляйте команду для каждого промежуточного положения ползунка.
- Следите за изменениями: используйте
didVolumesChanged, если интерфейс должен учитывать обновления устройства.
Примечания
volumesInfoявляется необязательным; отдельные значения также могут отсутствовать.- Текущий SDK читает
localPlaybackVolume, но не может изменять его отдельно. Добавляйте такой элемент управления только после появления открытого API записи. - Аппаратные элементы или другие клиенты могут изменить громкость после чтения снимка.