2013-12-02 3 views
1

Я попытался захватить аудиопоток как AMR-NB, используя следующий код:Захват аудиопотока как AMR-NB в приложении для Windows Store?

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

Но я получил исключение: «Нет Transform найдено для кодирования или декодирования».

Как я могу захватить аудиопоток как AMR-NB в приложении Windows Store?

+0

Вы получили что-нибудь с этим? Я получаю ту же самую проблему :) –

ответ

0

Ошибка «Без преобразования для кодирования или декодирования» обычно означает, что кодека не обнаружено. Вам нужно будет предоставить кодек для его работы. (например, если вы попытаетесь сделать кодировку mp3 в универсальном приложении, она будет работать на Win8, но даст ту же ошибку на WinPhone, потому что Msft не предоставляет этот кодек на телефоне)

Для магазина Windows приложений, поддерживаемые аудиоформаты могут быть found here, а кодеки, доступные для использования во время захвата мультимедиа, по-видимому, ограничены these. Что-то еще, похоже, нам нужно предоставить собственный кодек.

+0

AMR теперь поддерживается в Windows 10 UWP-приложениях. Информацию о поддержке можно найти здесь: https://msdn.microsoft.com/en-us/library/windows/apps/xaml/mt282148.aspx – Vincent