首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Naudio lib播放.wav文件

使用Naudio lib播放.wav文件
EN

Stack Overflow用户
提问于 2012-04-03 00:19:07
回答 1查看 5.1K关注 0票数 1

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

代码语言:javascript
复制
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;
}

在播放按钮中:

代码语言:javascript
复制
waveOutDevice = new NAudio.Wave.DirectSoundOut();
reductionStream = CreateStream(openFileDialog);
waveOutDevice.Init(reductionStream);

我使用的是NAudio 1.5版本。对于mp3文件来说,这个剧本很不错。当我选择.wav时,播放速度很慢,并且发出咯咯声。也许WaveStream pcm = WaveChannel32出了什么问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-03 05:09:01

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9979972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档