同步麦克风录音和音频播放(WP 8.1 XAML)

时间:2014-09-07 13:11:35

标签: c# windows-phone-8 windows-phone-8.1

使用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 个答案:

答案 0 :(得分:0)

1.永远不要在XAML中设置MediaElement的源,除非XAML位于您要求用户同意后导航到的页面上。

2.检查是否正在播放背景音乐,然后设置源(在代码中)。 注意:如果您设置了源,然后立即调用Play(),Play()将没有任何影响,因为MediaElement仍将处于“打开”状态,而是设置“AutoPlay = true”(从代码开始)

这是Reference