【问题标题】:How to play WAV audio file in Resources with MediaPlayer in WPF?如何在 WPF 中使用 MediaPlayer 播放资源中的 WAV 音频文件?
【发布时间】:2017-10-09 14:06:31
【问题描述】:

我可以使用下面的代码在资源中播放 wav 音频文件。

这些文件是通过以下方式添加到资源中的:

Practice_AccessResource > 文件 > 属性 > 资源 > 音频 > 添加 > 现有文件

//only can play audio file with SoundPlayer class.
System.IO.Stream strForMusic = Practice_AccessResourceFile.Properties.Resources.TaDa;
System.Media.SoundPlayer sountPlayer = new 
System.Media.SoundPlayer(strForMusic);
sountPlayer.Play();

仅供参考,项目名称是“Practice_AccessResourceFile”,wav 音频文件的名称是 TaDa.wav,抱歉我不能为你改名。

有没有办法在 WPF 中使用 MediaPlayer 播放音频文件?

System.IO.Stream stream = Properties.Resources.TaDa;
MediaPlayer musicPlayer = new System.Windows.Media.MediaPlayer();
//musicPlayer.Open(new System.Uri(stream));  //This is not working
//musicPlayer.Play();

我必须同时播放两首音乐,而使用 SoundPlayer 是不可能的。

谁能帮我在 WPF 中使用 MediaPlayer 类播放音频文件?

【问题讨论】:

  • 你必须使用古怪的包语法,如this question所示。
  • ohh.. 我想我会在 temp 文件夹中创建音频文件并在本地播放... Thnx

标签: c# wpf resources


【解决方案1】:

我认为 MediaPlayer 无法从资源播放,例如参见 this question

如果您可以将文件写入磁盘上的临时文件夹,那么根据this answer 应该是可能的:

var p1 = new System.Windows.Media.MediaPlayer();
p1.Open(new System.Uri(@"C:\windows\media\tada.wav"));
p1.Play();

// this sleep is here just so you can distinguish the two sounds playing simultaneously
System.Threading.Thread.Sleep(500);

var p2 = new System.Windows.Media.MediaPlayer();
p2.Open(new System.Uri(@"C:\windows\media\tada.wav"));
p2.Play();

【讨论】:

  • 您发布的代码是我已经知道的,但是感谢您告诉我使用 MediaPlayer 以正常方式是不可能的。我想我会在本地临时文件夹中创建文件。
猜你喜欢
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 2022-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多