我目前在Windows 10商店中有一个无线电流媒体应用。现在我想让我的用户可以将当前流记录到mp3文件中。
您是否有人建议如何保存音频流?我找不到给我保存字节的属性或事件。
我正在使用Windows.Media.Playback.Mediaplayer类。
提前致谢
基督教
答案 0 :(得分:2)
通常,您无法直接从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
只能监控从同一硬件设备输出的音频。所以你需要设置可用的播放设备。对于代码示例,您可以参考this。