使用 Windows.Media.Transcoding 从 wav 创建 m4a
Using Windows.Media.Transcoding to create m4a from wav
我正在尝试使用转码 类 将 wav 文件转换为 m4a 文件。但是每次我尝试从我的代码转换器获取 PrepareTranscodeResult
时,我都会收到 "Object reference not set to an instance of an object" 异常。
我查看了 Microsoft 的媒体转码示例,但如果我尝试针对音频修改它,它会以完全相同的方式失败。
有什么地方出错了吗?
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)
{
}
没有视频源就不能使用AudioEncodingQuality.Auto
属性。
在这种情况下,您只需要像这样使用具体的 属性。
var p = MediaEncodingProfile.CreateM4a(AudioEncodingQuality.High);
我正在尝试使用转码 类 将 wav 文件转换为 m4a 文件。但是每次我尝试从我的代码转换器获取 PrepareTranscodeResult
时,我都会收到 "Object reference not set to an instance of an object" 异常。
我查看了 Microsoft 的媒体转码示例,但如果我尝试针对音频修改它,它会以完全相同的方式失败。
有什么地方出错了吗?
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)
{
}
没有视频源就不能使用AudioEncodingQuality.Auto
属性。
在这种情况下,您只需要像这样使用具体的 属性。
var p = MediaEncodingProfile.CreateM4a(AudioEncodingQuality.High);