Ana içeriğe geç

Medya Sayılarını Sorgulama

Bağlı aygıttan en güncel fotoğraf, video ve ses dosyası sayılarını isteyin; ardından güncellenen mediaCountInfo özelliğini okuyun.

Ön Koşullar

Medya sayılarını sorgulamadan önce şunları doğrulayın:

  • Aygıt bağlı ve kararlı durumdadır
  • Aygıt DeviceInfoAPI protokolünü destekler

API Reference

Framework

AIBuds.xcframework

Import

SDK'yı kullanacağınız dosyalarda ana framework'ü içe aktarın:

Swift
import AIBuds

Protokol

İstek yöntemi ve sonuç özelliği DeviceInfoAPI içinde tanımlıdır.

Swift
protocol DeviceInfoAPI: DeviceAPI {
    /// Media file count information, including counts for photos, videos,
    /// audio, etc.
    var mediaCountInfo: MediaCountInfoModel? { get }

    /// Request to query the device media count information.
    /// - Parameters:
    ///   - completion: A closure that is called when the operation completes.
    ///   - success: `true` if the operation was successful; otherwise `false`.
    ///   - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
    func requestQueryMediaCountInfo(
        _ completion: AIBudsCompletionHandler?
    )
}

Örnek Yöntemi

Aygıtta depolanan medya için en güncel sayıları ister.

Swift
/// Request to query the device media count information.
/// - Parameters:
///   - completion: A closure that is called when the operation completes.
///   - success: `true` if the operation was successful; otherwise `false`.
///   - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
func requestQueryMediaCountInfo(
    _ completion: AIBudsCompletionHandler?
)

Parametreler

ParametreTürAçıklama
completionAIBudsCompletionHandler?İstek tamamlandığında çağrılan isteğe bağlı tamamlanma işleyicisi.

Geri Çağrı Parametreleri:

AdTürAçıklama
successBool / BOOLİstek başarılıysa true; aksi halde false.
errorNSError?İstek başarısızsa hata ayrıntıları; aksi halde nil.

Sonuç Özellikleri:

ÖzellikTürAçıklama
photoCountNSNumberFotoğraf sayısı.
videoCountNSNumberVideo sayısı.
audioCountNSNumberSes dosyası sayısı.

Dönüş Değeri

Yöntem, medya sayılarını tamamlanma işleyicisinde döndürmez. Başarılı bir isteğin ardından güncellenen mediaCountInfo özelliğini okuyun.

Kullanım Örnekleri

Swift
import AIBuds

final class DeviceManager {
    weak var device: DeviceConvertible?

    func queryMediaCount() {
        guard let device = device as? DeviceInfoAPI else {
            print("Device does not support media-count queries")
            return
        }

        device.requestQueryMediaCountInfo { success, error in
            guard success else {
                print("Media-count query failed: \(error?.localizedDescription ?? "Unknown error")")
                return
            }

            guard let counts = device.mediaCountInfo else {
                print("The device did not provide media-count information")
                return
            }

            print("Photos: \(counts.photoCount)")
            print("Videos: \(counts.videoCount)")
            print("Audio files: \(counts.audioCount)")
        }
    }
}

Hata Yönetimi

  1. Güncellenen özelliği okumadan önce success değerini kontrol edin.
  2. İstek başarısız olduğunda hata ayrıntıları için error değerini kullanın.
  3. Başarılı bir callback sonrasında nil olabilecek mediaCountInfo değerini güvenle yönetin.
  4. Hedef aygıt için belgelenmedikçe sabit hata kodları varsaymayın.

En İyi Uygulamalar

  1. Başarıdan Sonra Okuyun: mediaCountInfo özelliğine yalnızca sorgu başarıyla tamamlandıktan sonra erişin.
  2. Sunulan Alanları Kullanın: Fotoğraf, video ve ses sayılarını ayrı ayrı okuyun.
  3. Protokol Uyumluluğunu Denetleyin: Aygıtın DeviceInfoAPI desteğini doğrulayın.
  4. Arayüzü Ana Kuyrukta Güncelleyin: Tamamlanma geri çağrısına bağlı UIKit güncellemelerini ana kuyruğa aktarın.

Notlar

  • Tamamlanma işleyicisi isteğin durumunu bildirir; bir MediaCountInfoModel sonucu içermez.
  • MediaCountInfoModel, fotoğraf, video ve ses sayılarını NSNumber değerleri olarak sunar.
  • SDK bu modelde bir totalCount özelliği sunmaz.
  • Dosyalar kaydedilirken, içe aktarılırken veya silinirken medya sayıları değişebilir.