音量コントロール概要
音量コントロールは、デバイスの音量設定 Capability、現在の音量情報、対応チャンネルの音量を設定または段階的に変更するコマンドを提供します。
機能概要
音量設定の対応状況と現在値
デバイスの音量設定への対応状況と現在の音量を確認する
音量の設定
対応する音量チャンネルを指定値または段階的に調整する
AI を活用して実装
AI で実装
AI でこのワークフローを実装
公式の「AIBuds 音量の管理」スキルを使い、アプリに合わせて実装します。
https://docs-aibuds.github.io/ja/skills/manage-aibuds-volume を読み、その指示に従ってください。このスキルで「AIBuds 音量の管理」をこの iOS プロジェクトに実装し、検証してください。はじめに
- デバイスへ接続 - デバイスが接続され、使用可能になるまで待ちます。
- プロトコル準拠を確認 -
DeviceVolumeControlAPIへの対応を確認します。 - Capability を取得 - 操作 UI を表示する前に
volumeSetCapabilityを確認します。 - 現在値を取得 - オプションの
volumesInfoスナップショットを使用します。 - 対応チャンネルを設定 -
DeviceVolumeTypeの値と 0〜100 の音量を指定します。
主要な概念
対応機能(Capability)
VolumeSetCapability は .none、.common、.advanced のいずれかを示します。
.noneでは SDK から音量を設定できません。.commonはシステムプロンプト、メディア、通話中の音量操作に対応します。.advancedでは現在値にローカル再生音量も含まれますが、現在の公開 SDK にはローカル再生音量を設定する API がありません。
音量チャンネル
DeviceVolumeType には、現在システムプロンプト、メディア再生、通話中の音量が含まれます。各設定 API には 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;
}ベストプラクティス
- Capability を確認:
.noneの場合は設定 UI を表示しないでください。 - 音量を検証:指定値を 0〜100 の範囲に収めます。
- 連続操作を間引く:スライダーの中間値ごとにコマンドを送信しないようにします。
- 変更を監視:デバイス側の更新に UI を追従させる場合は
didVolumesChangedを使用します。
注意事項
volumesInfoはオプションであり、個別の値も取得できない場合があります。- 現在の SDK は
localPlaybackVolumeを読み取れますが、個別に設定できません。公開設定 API が追加されてから操作 UI を実装してください。 - スナップショット取得後も、ハードウェア操作や別のクライアントによってデバイス音量が変わる場合があります。