我正在使用 Windows 窗体应用程序 (.NET Framework),当我尝试让程序播放循环音频时,它显示“参数“1”:无法从“byte[]”转换为“string””。代码如下:

new Thread(() =>
{
     SoundPlayer player = new SoundPlayer(Properties.Resources.Anty);
     player.PlayLooping();

Anty 是音频的名称。

我尝试将音频文件从 .wav 转换为其他格式,但我很确定该库仅适用于 .wav。

2

  • 需要路径字符串,而您的资源是二进制音频文件。请尝试读取


    – 

  • 请记住,“Visual Studio”只是一个代码编辑器,就像记事本一样。您可以在任何您想要的编辑器中制作应用程序 – 您的问题与您使用的编辑器无关。


    – 


最佳答案
1

您不能将 a 传递byte[]给任何SoundPlayer构造函数…并且您不想将其转换为字符串,因为构造函数接受 wav 文件的路径或 URL。

听起来你可能想围绕字节数组创建一个流,例如

new SoundPlayer(new MemoryStream(Properties.Resources.Anty))

(或者任何其他获取从资源读取的流的方式。)

作为一个次要问题,我强烈怀疑您会发现SoundPlayer不应该在与 UI 线程不同的线程中构建它。