我正在尝试录制音频并直接播放它(我想在耳机中听到我的声音而不保存它),但是MediaElement和MediaCapture似乎不是同时工作。 我初始化我MediaCapture这样:同时录制音频和播放声音 - C# - Windows Phone 8.1
_mediaCaptureManager = new MediaCapture();
var settings = new MediaCaptureInitializationSettings();
settings.StreamingCaptureMode = StreamingCaptureMode.Audio;
settings.MediaCategory = MediaCategory.Other;
settings.AudioProcessing = AudioProcessing.Default;
await _mediaCaptureManager.InitializeAsync(settings);
但是我真的不知道如何着手;我wonderign如果这些方法之一可以工作(我tryied实现它们没有成功,我还没有发现的例子):
- 是否有使用StartPreviewAsync()录制音频,办法或它仅适用于视频?我注意到,我得到以下错误:“指定的对象或值不存在”,而设置我的CaptureElement来源;它只发生,如果我写“settings.StreamingCaptureMode = StreamingCaptureMode.Audio;”而每一个作品的视频。
- 如何使用StartRecordToStreamAsync()记录流;我的意思是,我如何初始化IRandomAccessStream并从中读取?我是否可以在上写而我保持为呢?
我读到将MediaElement的AudioCathegory和MediaCapture的MediaCathegory更改为Communication可能有效。但是,虽然我的代码与以前的设置一起工作(它只需记录并保存在文件中),但如果我编写“settings.MediaCategory = MediaCategory.Communication;”,则不起作用。而不是“settings.MediaCategory = MediaCategory.Other;”。你能告诉我为什么吗? 这是我目前的计划,只是记录,保存和播放:
private async void CaptureAudio() { try { _recordStorageFile = await KnownFolders.VideosLibrary.CreateFileAsync(fileName, CreationCollisionOption.GenerateUniqueName); MediaEncodingProfile recordProfile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.Auto); await _mediaCaptureManager.StartRecordToStorageFileAsync(recordProfile, this._recordStorageFile); _recording = true; } catch (Exception e) { Debug.WriteLine("Failed to capture audio:"+e.Message); } } private async void StopCapture() { if (_recording) { await _mediaCaptureManager.StopRecordAsync(); _recording = false; } } private async void PlayRecordedCapture() { if (!_recording) { var stream = await _recordStorageFile.OpenAsync(FileAccessMode.Read); playbackElement1.AutoPlay = true; playbackElement1.SetSource(stream, _recordStorageFile.FileType); playbackElement1.Play(); } }
如果您有任何建议,我会gratefull。 祝您有美好的一天。
谢谢你的帮助。因此,自从我编写Windows Phone应用程序以来,我不得不等待Windows 10 Mobile的发布,不是吗?我需要构建AudioGraph等的这些类将通过更新添加到Visual Studio中,否则我必须下载某些内容?对不起,但我对Visual Studio还没有信心... –
您必须升级到Visual Studio 2015才能开发Windows 10(这是免费的社区版)。您还可以加入Windows Insiders计划,将您的手机升级到Windows 10并开始开发并取得领先。 – Mike
太好了,我安装了Visual Studio 2015,现在我有了需要了解这些示例的命名空间。但现在我有另一个问题:我怎样才能下载你发给我的项目(https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/AudioCreation)?我无法真正找到下载zip文件的方法(页面不显示任何按钮).. –