如何使用 Windows MediaCapture API 捕获“仅音频”?
Posted
技术标签:
【中文标题】如何使用 Windows MediaCapture API 捕获“仅音频”?【英文标题】:How to Capture "Audio Only" using Windows MediaCapture API? 【发布时间】:2012-09-10 13:26:31 【问题描述】:我正在尝试通过 Windows MediaCapture API 捕获“仅音频”。我正在使用以下代码,但遇到异常(HRESULT:0xC00D36D5)。
MediaCapture captureMgr = new MediaCapture();
MediaCaptureInitializationSettings captureSettings = new MediaCaptureInitializationSettings();
captureSettings.StreamingCaptureMode = StreamingCaptureMode.Audio;
await captureMgr.InitializeAsync(captureSettings);
this.CaptureVideoElement.Source = captureMgr;// exception is thrown here...
await captureMgr.StartPreviewAsync();
请告诉我我做错了什么?或者请提出更好的出路。
【问题讨论】:
你找到这个链接了吗? social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/… 感谢您的回复。我刚刚访问了这个链接。我的问题几乎相同。但该链接不提供任何解决方案。如果音频不能与 captureElement 一起使用,我该如何捕获它,因为它也不能与媒体元素一起使用。我是Win8的新手,所以欢迎任何建议。 我也需要这方面的帮助。 【参考方案1】:我正在尝试做类似的事情,这就是我通过 MSDN/Samples 发现的...
private async void OnStartRecordingBtnClick(object sender, RoutedEventArgs e)
try
m_mediaCaptureMgr = new MediaCapture();
var settings = new MediaCaptureInitializationSettings();
settings.StreamingCaptureMode = StreamingCaptureMode.Audio;
await m_mediaCaptureMgr.InitializeAsync(settings);
catch (Exception exception)
// Do Exception Handling
private async void OnStopRecordingBtnClick(object sender, RoutedEventArgs e)
try
String fileName;
if (!m_bRecording)
fileName = "audio.mp4";
m_recordStorageFile = await Windows.Storage.KnownFolders.VideosLibrary.CreateFileAsync(fileName, Windows.Storage.CreationCollisionOption.GenerateUniqueName);
MediaEncodingProfile recordProfile = null;
recordProfile = MediaEncodingProfile.CreateM4a(Windows.Media.MediaProperties.AudioEncodingQuality.Auto);
await m_mediaCaptureMgr.StartRecordToStorageFileAsync(recordProfile, this.m_recordStorageFile);
m_bRecording = true;
else
await m_mediaCaptureMgr.StopRecordAsync();
m_bRecording = false;
if (!m_bSuspended)
var stream = await m_recordStorageFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
playbackElement.AutoPlay = true;
playbackElement.SetSource(stream, this.m_recordStorageFile.FileType);
catch (Exception exception)
// Do Exception Handling...
m_bRecording = false;
希望这会有所帮助。 这是 MSDN 链接: enter link description here
【讨论】:
以上是关于如何使用 Windows MediaCapture API 捕获“仅音频”?的主要内容,如果未能解决你的问题,请参考以下文章