同时进行麦克风录音和音频播放(WP 8.1 XAML)



使用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"(从代码开始工作)

这是一个参考

最新更新