Как правило, вы не можете напрямую получить аудиопоток от Mediaplayer
. Однако вы можете контролировать звук через устройство Stereo Mix
.
Установить Stereo Mix в качестве устройства записи по умолчанию. И сделать аудио захват через MediaCapture
класс.
private async Task<bool> RecordProcess()
{
if (buffer != null)
{
buffer.Dispose();
}
buffer = new InMemoryRandomAccessStream();
if (capture != null)
{
capture.Dispose();
}
try
{
MediaCaptureInitializationSettings settings = new MediaCaptureInitializationSettings
{
StreamingCaptureMode = StreamingCaptureMode.Audio
};
capture = new MediaCapture();
await capture.InitializeAsync(settings);
capture.RecordLimitationExceeded += (MediaCapture sender) =>
{
//Stop
// await capture.StopRecordAsync();
record = false;
throw new Exception("Record Limitation Exceeded ");
};
capture.Failed += (MediaCapture sender, MediaCaptureFailedEventArgs errorEventArgs) =>
{
record = false;
throw new Exception(string.Format("Code: {0}. {1}", errorEventArgs.Code, errorEventArgs.Message));
};
}
catch (Exception ex)
{
if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UnauthorizedAccessException))
{
throw ex.InnerException;
}
throw;
}
return true;
}
Обратите внимание, что Stereo
может контролировать только звук, который выводится с того же устройства. Так что вам нужно установить доступное устройство воспроизведения. Для примера кода вы можете обратиться это .