【问题标题】:Simultaneous microphone recording and audio playback (WP 8.1 XAML)同时麦克风录音和音频播放 (WP 8.1 XAML)
【发布时间】:2014-09-07 13:11:34
【问题描述】:

使用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,但这也不起作用。有任何想法吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    这是Reference

    【讨论】:

    • 感谢您的回复。不幸的是,在修改了我的代码来做到这一点之后 - 一旦我开始录制,音频播放仍然会静音。我知道播放不会停止,因为我在停止录制后听到音频并且它没有处于暂停状态,而是在整个录制过程中播放(只是静音)。执行此行时它会静音:codeawait _mediaCaptureManager.StartRecordToStorageFileAsync(recordProfile, this._recordStorageFile);
    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多