1

要播放我的波形文件,我会这样做:

SoundPlayer p = new SoundPlayer(@"myWaveFile.wav");
p.Play();

某些 wav 文件由于某种原因无法播放。例如,当尝试播放此波形文件时,我收到一个错误:

SoundPlayer p = new SoundPlayer(@"c:\Windows\Media\Afternoon\Windows Balloon.wav");
p.Play();
// the exception that I get is:   Sound API only supports playing PCM wave files.

我正在寻找一种可以告诉我是否可以播放波形文件的方法,例如这种方法

public void CanPlayWaveFile(string file)
{
        SoundPlayer p = new SoundPlayer(file);
        try
        {
            p.Play();
            return true;
        }
        catch
        {
            return false;
        }
}

该方法的问题是我可能不想播放我只想知道是否可以播放该文件的音频。此外,我不想等待波形文件完成播放才能查看是否可以稍后播放该文件。那么我怎么知道一个波形文件是否有这种 PCM 格式。如果存在 SoundPlayer.CanPlayFile() 方法会很好。

编辑

我看到人们帮助我了解如何播放其他格式或转换此格式。我不想将其转换为其他格式。我只是想知道我是否可以在不必使用 try catch 块的情况下玩它们...

4

1 回答 1

1

WAV 文件可以有多种压缩方法,包括 MP3。PCM(脉冲编码调制)是 System.Media.SoundPlayer 类唯一支持的一种。幸运的是,它是最常见的 WAV 格式,因此大多数 .WAV 文件都能正常工作。

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/d30a3002-a553-4bb2-b8da-058255395a5e/

要么将这些 WAV 转换为 PCM,要么必须使用其他媒体播放器。

于 2013-06-04T16:09:40.263 回答