我怎么知道我是否可以用System.Media.SoundPlayer播放一个波文件?

本文关键字:一个 文件 播放 SoundPlayer 是否 Media System 我怎么知道 | 更新日期: 2023-09-27 18:16:57

播放I wave文件:

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块的情况下播放它们。

我怎么知道我是否可以用System.Media.SoundPlayer播放一个波文件?

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

http://social.msdn.microsoft.com/forums/en - us/netfxbcl/thread/d30a3002 a553 - 4 - bb2组- b8da - 058255395 - a5e/

要么你把这些WAV转换成PCM,要么你必须使用另一个媒体播放器。