使用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,但那也没有用。有任何想法吗?
答案 0 :(得分:0)
1.永远不要在XAML中设置MediaElement的源,除非XAML位于您要求用户同意后导航到的页面上。
2.检查是否正在播放背景音乐,然后设置源(在代码中)。 注意:如果您设置了源,然后立即调用Play(),Play()将没有任何影响,因为MediaElement仍将处于“打开”状态,而是设置“AutoPlay = true”(从代码开始)