Ana içeriğe geç

Ses Düzeyi Yeteneğini ve Değerlerini Görüntüleme

Cihazın ses ayarlama yeteneğini ve o anda kullanılabilen ses düzeylerini okuyun.

Ön Koşullar

  • Cihaz bağlı ve hazırdır.
  • Cihaz DeviceVolumeControlAPI protokolüne uyar.

API Referansı

Framework

AIBuds.xcframework

İçe Aktarma

Swift
import AIBuds

Protokol

Swift
/// The protocol for device volume control API.
protocol DeviceVolumeControlAPI: DeviceAPI {
    /// The device's volume-set capability.
    var volumeSetCapability: VolumeSetCapability { get }

    /// Current volumes information of the device, or `nil` if unavailable.
    var volumesInfo: VolumesInfoModel? { get }
}

Özellikler

ÖzellikTürAçıklama
volumeSetCapabilityVolumeSetCapabilitySes düzeyi ayarlama yeteneği.
volumesInfoVolumesInfoModel?Güncel ses düzeyleri; kullanılamıyorsa nil.

Yetenek Değerleri

DeğerGüncel SDK'daki anlamı
.noneSes düzeyi ayarlanamaz.
.commonSistem bildirimi, medya ve görüşme kanalları ayarlanabilir.
.advancedGüncel durum yerel oynatma sesini de bildirebilir; şu anda bunu ayarlayan genel bir API yoktur.

Ses Düzeyi Bilgileri

ÖzellikTürAralıkAçıklama
systemPromptVolumeNSNumber?0–100Güncel sistem bildirimi ses düzeyi.
mediaVolumeNSNumber?0–100Güncel medya oynatma ses düzeyi.
callVolumeNSNumber?0–100Güncel görüşme ses düzeyi.
localPlaybackVolumeNSNumber?0–100Güncel yerel oynatma ses düzeyi; mevcut genel API'de salt okunurdur.

Kullanım Örnekleri

Swift
import AIBuds

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

print("Capability: \(device.volumeSetCapability)")

if let volumes = device.volumesInfo {
    print("System prompt: \(volumes.systemPromptVolume?.intValue.description ?? "Unavailable")")
    print("Media: \(volumes.mediaVolume?.intValue.description ?? "Unavailable")")
    print("Call: \(volumes.callVolume?.intValue.description ?? "Unavailable")")
    print("Local playback: \(volumes.localPlaybackVolume?.intValue.description ?? "Unavailable")")
}

Hata Yönetimi

Bu özelliklerin completion handler'ı yoktur. Desteklenmeyen protokolü, nil modeli ve ayrı nil kanal değerlerini varsayılan değer uydurmadan işleyin.

En İyi Uygulamalar

  1. İsteğe Bağlı Değerleri Koruyun: nil değerini sıfır olarak göstermeyin.
  2. Arayüz Kararlarında Yeteneği Kullanın: .none için tüm yazma denetimlerini gizleyin.
  3. Güncellemeleri İzleyin: Canlı değer gerektiğinde didVolumesChanged delegate callback'inden yenileyin.

Notlar

  • SDK, getVolumeControlSupport veya Result tabanlı sorgu yerine eşzamanlı özellikler sunar.
  • Yerel oynatma ses düzeyi şu anda okunabilir ancak bağımsız olarak yazılamaz.