使用Windows.Media.Transcoding从wav创建m4a

时间:2015-08-07 15:07:52

标签: c# audio encoding windows-store-apps m4a

我尝试使用转码类将wav文件转换为m4a文件。但是每当我试图从我的代码转换器中获取PrepareTranscodeResult时,我得到一个"对象引用未设置为对象的实例"异常。

我查看了微软的媒体转码样本,但如果我尝试修改音频,则会以完全相同的方式出现。

我出错的任何想法?

        StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
        file1 = await storageFolder.GetFileAsync("Foo.wav");
        file2 = await storageFolder.CreateFileAsync("Bar.m4a", CreationCollisionOption.ReplaceExisting);
        MediaTranscoder transcoder = new MediaTranscoder();
        var p = MediaEncodingProfile.CreateM4a(AudioEncodingQuality.Auto);

        try
        {
            var preparedTranscodeResult = await transcoder.PrepareFileTranscodeAsync(file1, file2, p);
            var progress = new Progress<double>(TranscodeProgress);
            await preparedTranscodeResult.TranscodeAsync().AsTask(progress);
        }
        catch (Exception exc)
        {
        }

1 个答案:

答案 0 :(得分:1)

没有视频源,您无法使用AudioEncodingQuality.Auto媒体资源 在这种情况下,您只需使用这样的具体属性。

var p = MediaEncodingProfile.CreateM4a(AudioEncodingQuality.High);