У меня проблемы с AudioGraph в приложении UWP. Моя проблема в том, что когда я добавляю Исходящее соединение к моему узлу устройства ввода, я получаю исключение с HRESULT: 0x88960001.
Путем проб и ошибок я понял, что проблема связана с профилем MediaEncoding, который я установил как на входном, так и на выходном узле... но теперь у меня 2 настройки работают только на одной машине, а другая работает только на другой машине... Я требовалось, чтобы звук был одноканальным, 16-битный сэмпл с 16-килобайтным сэмплом в формате PCM.
Код, который я использую, довольно прост и основан на образцах, которые существуют в Интернете, дело в том, что он работает только с некоторыми микрофонами, а не с другими... Мне нужно, чтобы он был универсальным и всегда имел один и тот же вывод, чтобы я мог вводить это к моей конечной точке службы.
Я оставил там 2 настройки AudioEncodingProperties (один из них закомментирован)
var result = await AudioGraph.CreateAsync(
new AudioGraphSettings(AudioRenderCategory.Media));
if (result.Status == AudioGraphCreationStatus.Success)
{
this.graph = result.Graph;
var microphone = await DeviceInformation.CreateFromIdAsync(
MediaDevice.GetDefaultAudioCaptureId(AudioDeviceRole.Default));
// Low gives us 1 channel, 16-bits per sample, 16K sample rate.
var outProfile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.Low);
//outProfile.Audio = AudioEncodingProperties.CreatePcm(16000, 1, 16);
outProfile.Audio = AudioEncodingProperties.CreatePcm(44100, 2, 32);
var inProfile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.Low);
//inProfile.Audio = AudioEncodingProperties.CreatePcm(16000, 1, 16);
inProfile.Audio = AudioEncodingProperties.CreatePcm(44100, 2, 32);
var outputResult = await this.graph.CreateFileOutputNodeAsync(file,
outProfile);
if (outputResult.Status == AudioFileNodeCreationStatus.Success)
{
this.outputNode = outputResult.FileOutputNode;
var inputResult = await this.graph.CreateDeviceInputNodeAsync(
MediaCategory.Speech,
inProfile.Audio,
microphone);
if (inputResult.Status == AudioDeviceNodeCreationStatus.Success)
{
//EXEPTION IS THROWN HERE
inputResult.DeviceInputNode.AddOutgoingConnection(
this.outputNode);
this.graph.Start();
}
}
}
else
{
throw new Exception("Could not create AudioGraph");
}
Спасибо, ребята, за нашу помощь