我想用具有Windows IoT核心的raspberry pi 3录制音频,我需要以mp3格式录制音频,因为我将发送音频的服务器只接受mp3,但是raspberry pi3不支持mp3格式编码并且没有其编解码器,因此我必须使用其他编码格式,例如M4A,它对我没有用,我会注意到在x86和x64 UWP编程中,支持mp3编码编解码器,这意味着您进行编译此代码在您的桌面窗口上,它将可以正常运行。 所以我该怎么办?是否可以像在通常的Windows上那样在Windows IoT核心上安装编解码器,还是应该使用库来进行mp3录音? 这是捕获音频文件的示例代码的一部分,但是由于我使用“ MediaEncodingProfile.CreateMp3”方法,因此会引发异常。 这是各种系统支持的编解码器: https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/supported-codecs
InitCaptureSettings(selected.Id);
await InitMediaCapture();
var storageFile = await Windows.Storage.KnownFolders.VideosLibrary.CreateFileAsync("audioOut.mp3", Windows.Storage.CreationCollisionOption.GenerateUniqueName);
audioFileName = storageFile.Name;
MediaEncodingProfile profile = null;
profile = MediaEncodingProfile.CreateMp3(Windows.Media.MediaProperties.AudioEncodingQuality.Auto);
await audioCapture.StartRecordToStorageFileAsync(profile, storageFile);
isRecording = true;
答案 0 :(得分:0)
由于文章中列出的编解码器,Window IoT核心版不支持mp3解码格式。据我所知,无法在Windows IoT核心版中安装mp3编解码器。如果使用mp3编解码器,则会出现以下错误:
No suitable transform was found to encode or decode the content. (Exception from HRESULT: 0xC00D5212)
此问题的解决方法是,在Windows IoT核心版中以aac格式记录音频,将保存的文件下载到桌面,然后对音频文件进行转码。您可以使用Windows.Media.Transcoding API将transcode video/audio files从一种格式转换为另一种格式,也可以使用任何其他转码工具。