繁体   English   中英

如何从Windows 10通用应用程序中的CD导入.CDA曲目?

[英]How to import .CDA tracks from a CD in windows 10 universal app?

我需要从CD导入曲目,但到目前为止我无法这样做。 我可以成功地从CD导入.mp3或许多其他音频格式。 出于导入目的,我首先扫描CD的文件和文件夹。 然后我向用户显示文件列表并复制用户从列表中选择的文件。

这是我扫描目录或CD的代码:

    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)
        {

        }
    }    

我将CD路径传递给此函数,它为我创建了一个文件列表。 当CD只有.mp3或任何着名的音频格式时,此代码可以正常工作。 但是当CD具有.CDA扩展轨道时,它会造成麻烦。 我们知道.CDA文件本身不能播放,它们只是原始媒体文件的快捷方式。

现在,这就是我现在被困住的地方。 如何阅读.CDA文件或将.CDA文件媒体导入我们在通用Windows应用程序中的本地目录。

简短回答:CDA文件无法做到这一点。

答案很长:CDA文件只是Windows为CD上的每个音轨生成的存根文件。 这些文件不包含实际的音频数据。 它们包含的是光盘上每个轨道开始和停止的位置。 如果文件从CD“复制”到计算机,则不能单独使用它,因为它只是部分光盘的快捷方式。 音频CD未格式化为文件系统磁盘。 它无法作为文件访问。 这就是Windows创建CDA文件的原因。 它将CD显示为带有轨道文件的驱动器,以便于查看。

您将不得不使用可以从磁盘加载实际音轨的库,而不是文件而是音轨。 使用CDA的正确方法是将其用作实际音频轨道的参考,将其翻录到文件,然后加载翻录文件。

您可以使用本机Windows Media Interface来翻录音轨。 我还发现了一个似乎使用自定义开膛手的代码项目教程 他们应该让你朝着正确的方向前进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM