【问题标题】:how can I know if I can play a wave file with System.Media.SoundPlayer我怎么知道我是否可以使用 System.Media.SoundPlayer 播放波形文件
【发布时间】:2013-05-31 02:53:21
【问题描述】:

要播放我做的波形文件:

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 块...

【问题讨论】:

标签: c# media


【解决方案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,要么必须使用其他媒体播放器。

【讨论】:

  • Rotherford 我只是想知道我是否可以播放文件而不是将其转换为其他格式:)
猜你喜欢
  • 1970-01-01
  • 2012-09-21
  • 1970-01-01
  • 2014-09-28
  • 2011-11-25
  • 2023-02-10
  • 1970-01-01
  • 2012-07-03
  • 2011-04-03
相关资源
最近更新 更多