Захватывать аудиопоток как AMR-NB в приложении Магазина Windows?
Я попытался захватить аудиопоток как AMR-NB, используя следующий код:
var capture = new MediaCapture();
await capture.InitializeAsync();
var recordProfile = new MediaEncodingProfile();
Windows.Media.MediaProperties.AudioEncodingProperties audioProp= new AudioEncodingProperties();
audioProp.ChannelCount = 1;
audioProp.BitsPerSample = 16;
audioProp.SampleRate = 8000;
audioProp.Bitrate = 16;
audioProp.Subtype = MediaEncodingSubtypes.AmrNb;
recordProfile.Audio = audioProp;
Windows.Media.MediaProperties.ContainerEncodingProperties containProp = new ContainerEncodingProperties();
containProp.Subtype = MediaEncodingSubtypes.Mpeg4;
recordProfile.Container = containProp;
recordProfile.Video = null;
var file = await KnownFolders.VideosLibrary.CreateFileAsync("captured.mp4",CreationCollisionOption.GenerateUniqueName);
await capture.StartRecordToStorageFileAsync(recordProfile, file);
Но я получил исключение: "Не найдено преобразование для кодирования или декодирования".
Как я могу захватить аудиопоток как AMR-NB в приложении Магазина Windows?
1 ответ
Ошибка "Не найдено преобразование для кодирования или декодирования" обычно означает, что кодек не найден. Вам нужно будет предоставить кодек для его работы. (например, если вы попытаетесь выполнить кодирование mp3 в универсальном приложении, оно будет работать на Win8, но с той же ошибкой на WinPhone, потому что Msft не предоставляет этот кодек на телефоне)
Для приложений Windows Store поддерживаемые аудиоформаты можно найти здесь, и кодеки, доступные для использования во время захвата мультимедиа, ограничиваются ими. Все остальное, кажется, мы должны предоставить свой собственный кодек.