同时进行麦克风录音和音频播放(WP 8.1 XAML)
本文关键字:WP XAML 播放 音频 麦克风 录音 | 更新日期: 2023-09-27 18:20:53
使用MediaElement控件和MediaCapture类,我试图记录麦克风输入并同时播放音频。
我一开始录音,播放的曲目就会静音。我不认为它停止了,因为它在录音停止后继续播放。我已经在MediaElement上的几个事件中添加了钩子,但没有一个被触发。例如,CurrentStateChanged、MediaEnded、MediaFailed等
记录代码:
public async void InitializeMediaCapture()
{
_mediaCaptureManager = new MediaCapture();
var settings = new MediaCaptureInitializationSettings();
settings.StreamingCaptureMode = StreamingCaptureMode.Audio;
settings.MediaCategory = MediaCategory.Other;
await _mediaCaptureManager.InitializeAsync(settings);
}
private async void CaptureAudio()
{
_recordStorageFile = await KnownFolders.VideosLibrary.CreateFileAsync(fileName, CreationCollisionOption.GenerateUniqueName);
var recordProfile = MediaEncodingProfile.CreateM4a(AudioEncodingQuality.Auto);
await _mediaCaptureManager.StartRecordToStorageFileAsync(recordProfile, this._recordStorageFile);
//audio playback stops on preceding line of code
}
我在MediaElement上使用.Play()来播放音频,XAML中的控件和音频源都设置在那里。
<MediaElement x:Name="playbackElement"
Source="ms-appx:///Audio/Song.mp3"
AutoPlay="False" />
我也试过将音频作为BackgroundAudio播放,但也不起作用。有什么想法吗?
1.永远不要在XAML中设置MediaElement的Source,除非该XAML位于请求用户同意后导航到的页面上。
2.检查背景音乐是否正在播放,然后设置源(在代码中)。注意:如果你设置了源代码,然后立即调用Play(),Play()将不会产生任何影响,因为MediaElement仍将处于"打开"状态,而是设置"AutoPlay=true"(从代码开始工作)
这是一个参考