Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “媒体元素”;mediaPlayer_MediaEnded";没有发出声音的结尾_C#_Wpf_Windows Media Player - Fatal编程技术网

C# “媒体元素”;mediaPlayer_MediaEnded";没有发出声音的结尾

C# “媒体元素”;mediaPlayer_MediaEnded";没有发出声音的结尾,c#,wpf,windows-media-player,C#,Wpf,Windows Media Player,我只是尝试使用wpf mediaPlayer播放vocie文件。下面是我使用的示例代码。但mediaPlayer.MediaEnded+=mediaPlayer_MediaEnded事件未触发语音结尾 private void PlayVoice(string voiceFileURL) { try { mediaPlayer = new MediaPlayer(); mediaPlayer.MediaEnded += mediaPlayer_Me

我只是尝试使用wpf mediaPlayer播放vocie文件。下面是我使用的示例代码。但mediaPlayer.MediaEnded+=mediaPlayer_MediaEnded事件未触发语音结尾

private void PlayVoice(string voiceFileURL)
{
    try
    {
        mediaPlayer = new MediaPlayer();
        mediaPlayer.MediaEnded += mediaPlayer_MediaEnded;
        mediaPlayer.Open(new Uri(voiceFileURL.Replace("https://","http://")));

        for (int i = 0; i < 3; i++)
        {
            try
            {
                mediaPlayer.Play();
                break;
            }
            catch (Exception)
            {
                System.Threading.Thread.Sleep(1000);
            }                       
        } 
    }
    catch (Exception Ex)
    {  
    }
    finally
    {   
    }
}

void mediaPlayer_MediaEnded(object sender, EventArgs e)
{ 
    mediaPlayer.Stop(); 
}
private void播放语音(字符串voiceFileURL)
{
尝试
{
mediaPlayer=新的mediaPlayer();
mediaPlayer.MediaEnded+=mediaPlayer_MediaEnded;
打开(新Uri(voiceFileURL.Replace(“https:/”,“http:/”)));
对于(int i=0;i<3;i++)
{
尝试
{
mediaPlayer.Play();
打破
}
捕获(例外)
{
系统线程线程睡眠(1000);
}                       
} 
}
捕获(例外情况除外)
{  
}
最后
{   
}
}
void mediaPlayer_mediated(对象发送方,事件参数e)
{ 
mediaPlayer.Stop();
}
我建议您试试
LoadedBehavior=Manual
UnloadedBehavior=MediaState.Stop
作为国家

LoadedBehavior必须设置为手动,以便通过播放、暂停和停止方法交互控制媒体


查看
void mediaPlayer\u MediaEnded(object sender,EventArgs e){}
,我假设您的
mediaPlayer\u MediaEnded()
方法确实不是问题所示的空方法。我们能看到实际代码的部分/全部吗?这是因为您的语法似乎正确。您是否已将
mediaPlayer\u MediaEnded
注册到该事件?从您当前的代码片段中还不清楚这一点,这可以解释您的问题。在这里,您可以看到表单加载时的完整代码,voice mediaPlayer_MediaEnded evet not fire。但是当我在加载的mediaPlayer_MediaEnd evet fire后播放它时。为什么会发生。有没有办法停止soundPlayer.PlaySync()soundPlayer。我需要在它运行时停止播放。检查,这可能足以满足您对
SoundPlayer
的要求。顺便说一句,我的解决方案对你的实际问题有帮助吗。如果是,则单击左侧的勾号接受它