2016-10-04 31 views
8

Parçaları bir CD'den almam gerekiyor ancak şu ana kadar bunu yapamıyorum. Bir CD'den .mp3 veya diğer birçok ses formatını başarılı bir şekilde alabilirim. Öncelikli olarak ithalat için bir CD'nin dosyalarını ve klasörlerini tararım. Ardından, kullanıcılara dosyaların listesini gösterir ve kullanıcının listeden seçtiği dosyaları kopyalarım. Bu işleve CD yolu geçmekNasıl alınır .CDA, Windows 10 evrensel uygulamasında bir CD'den izler mi?

List<StorageFile> allTrackFiles = null; 
    private async Task GetFiles(StorageFolder folder) 
    { 
     if(!scanningRemovableTask) 
     { 
      return; 
     } 
     try 
     { 

     if(allTrackFiles == null) 
     { 
      allTrackFiles = new List<StorageFile>(); 
     } 
     var items = await folder.GetItemsAsync(); 

     foreach (var item in items) 
     { 
       if (item.GetType() == typeof(StorageFile)) 
       { 
        StorageFile storageFile = item as StorageFile; 
        allTrackFiles.Add(storageFile); 

        var basicProperties = await storageFile.GetBasicPropertiesAsync(); 
        var musicProperties = await storageFile.OpenReadAsync(); 
       } 
       else 
        await GetFiles(item as StorageFolder); 
     } 

     } 
     catch(Exception e) 
     { 

     } 
    }  

ve bu benim için dosyaların bir listesini oluşturur:

İşte Dizin veya CD taramak için benim kodudur. Bu kod, CD yalnızca .mp3 veya herhangi bir ünlü Ses biçimine sahip olduğunda iyi çalışır. Ancak CD'nin .CDA uzantısı izleri olduğunda sorun yaratır. Bildiğimiz gibi .CDA dosyaları oynatılmıyor, orijinal medya dosyalarına sadece kısayollar.

Şimdi, burası şu anda sıkıştığım yer. Evrensel pencereler uygulamasında .CDA dosyaları nasıl okunur veya .CDA dosyaları medyası yerel dizinimize nasıl aktarılır.

+0

Aynı soru. .CDA, UWP'de destekliyor mu? – Mikewhat

+0

Cevabı bilmiyorum .... Ben de çözüm arıyorum! –

cevap

6

Kısa yanıt: Bu, CDA dosyalarıyla mümkün değildir.

Uzun yanıt: CDA dosyası, CD'deki her ses parçası için Windows tarafından oluşturulan bir saplama dosyasıdır. Bu dosyalar gerçek ses verilerini içermez. İçerdikleri her şey, diskte her parçanın başladığı ve durduğu yerdir. Dosya CD'den bir bilgisayara "kopyalandıysa", kendi başına kullanılamaz, çünkü bu yalnızca diskin bir parçasının kısayoludır. Bir ses CD'si dosya sistemi diski olarak formatlanmamıştır. Dosya olarak erişilemez. Bu nedenle Windows CDA dosyalarını oluşturur. CD'yi, sadece kolay görüntüleme için parçalar için dosyalara sahip bir sürücü olarak görüntüler.

Gerçek ses yollarını diskten, dosya olarak değil ses parçaları olarak yükleyebilen bir kütüphane kullanmanız gerekecektir. CDA'yı kullanmanın uygun yolu, onu gerçek ses parçasına bir referans olarak kullanmak, bunu bir dosyaya kopyalamak ve ardından kopyalanmış dosyayı yüklemek olacaktır.

Ses parçalarını kopyalamak için yerel Windows Media Interface kullanabilirsiniz. Ayrıca özel bir ripper kullanıyormuş gibi görünen bir Code Project Tutorial buldum. Seni doğru yöne doğru yönlendirmeliler.

+0

Kod proje öğreticisi, windows form uygulaması için değil midir? UWP ile kullanmaya çalışıyorum !! Universal Windows Platform ile kullanmak mümkün mü? –

+0

Aslında UWP veya masaüstü uygulamalarında çok fazla deneyimim yok .... İleriye doğru ilerlerken bana biraz daha talimat verirseniz gerçekten yararlı olur ... BTW Cevabınız için teşekkürler ... –

+0

Kod proje öğreticisi 'CDDrive' adlı sınıf. İlk örnek, nasıl kullanılacağını gösterir. Kodda göz attım ve yerel Windows api çağrılarını kullanıyor. Ses CD'lerinin düşük seviyeli yapısı göz önünde bulundurulduğunda, işletim sistemine güvenmenin bir yolu olmayabilir. Bunun nasıl bir evrensel Windows uygulamasına dönüştüğünü bilmiyorum. Sadece iyi çalışır. Bir şans ver ve bana haber ver. – Jaguir