簡體   English   中英

我怎么知道我是否可以使用System.Media.SoundPlayer播放Wave文件

[英]how can I know if I can play a wave file with System.Media.SoundPlayer

要播放我的波形文件,我要做的是:

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

某些wav文件由於某些原因無法播放。 例如,當嘗試播放此wave文件時,出現錯誤:

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.

我正在尋找一種可以告訴我是否可以播放wave文件的方法,例如這種方法

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

該方法的問題在於,我可能不想播放只想知道是否可以播放該文件的音頻。 另外,我也不必等待波形文件播放完畢才能查看以后是否可以播放該文件。 所以我怎么知道波形文件是否具有這種PCM格式 如果存在方法SoundPlayer.CanPlayFile()會很好。

編輯

我看到有人幫助我了解如何播放其他格式或轉換此格式。 我不想將其轉換為其他格式。 我只是想知道是否可以在不使用try catch塊的情況下播放它們...

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,要么必須使用另一個Media Player。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM