【问题标题】:Play .wav files with Naudio lib使用 Naudio lib 播放 .wav 文件
【发布时间】:2012-04-16 07:44:25
【问题描述】:

我尝试使用 NAudio lib 打开和播放 .wav 文件。

private OpenFileDialog openFileDialog = null;
private NAudio.Wave.IWavePlayer waveOutDevice;
private NAudio.Wave.BlockAlignReductionStream reductionStream = null;

private NAudio.Wave.BlockAlignReductionStream CreateStream(OpenFileDialog fileDialog)
{

    if (fileDialog.FileName.EndsWith(".mp3"))
    {
        NAudio.Wave.WaveStream pcm = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(fileDialog.FileName));
        reductionStream = new NAudio.Wave.BlockAlignReductionStream(pcm);
    }
    else if (fileDialog.FileName.EndsWith(".wav"))
    {
        NAudio.Wave.WaveStream pcm = new NAudio.Wave.WaveChannel32(new NAudio.Wave.WaveFileReader(openFileDialog.FileName));
        reductionStream = new NAudio.Wave.BlockAlignReductionStream(pcm);
    }
    else
    {
        throw new InvalidOperationException("Unsupported");
    }

    return reductionStream;
}

和播放按钮:

waveOutDevice = new NAudio.Wave.DirectSoundOut();
reductionStream = CreateStream(openFileDialog);
waveOutDevice.Init(reductionStream);

我使用的是 NAudio 1.5 版本。对于 mp3 文件,该播放器很好。当我选择.wav 时,播放速度很慢,并且吱吱作响。 WaveStream pcm = WaveChannel32 可能有问题?

【问题讨论】:

  • 蜗牛走得很慢,门吱吱作响。这些术语不能很好地描述音频播放问题。

标签: c# .net audio naudio


【解决方案1】:

您不需要使用 BlockAlignReductionStream、WaveChannel32 或 CreatePcmStream。只需使用 Mp3FileReader 或 WaveFileReader 并将其传递给您的 IWavePlayer,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多