首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NAudio PlaybackState从未停止过?

NAudio PlaybackState从未停止过?
EN

Stack Overflow用户
提问于 2013-06-09 15:27:44
回答 2查看 3K关注 0票数 1

我正在使用NAudio创建一个简单的音频播放器,但我找不到一个解决方案,可以将NAudio流的PlaybackState更改为“停止”,从而触发PlaybackState事件。

我这样做如下所示:

代码语言:javascript
复制
private BlockAlignReductionStream stream = null;

private NAudio.Wave.WaveOut output = null;

private void Add_to_stream()
        {

            string[] files = Directory.GetFiles(Settings.Default.m + "\\","*"+selected_music+"*");

            if (files[0].EndsWith(".mp3"))
            {
                NAudio.Wave.Mp3FileReader mp3fr = new NAudio.Wave.Mp3FileReader(Settings.Default.m + "\\" + selected_music + ".mp3");
                var pcm = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(mp3fr);
                stream = new NAudio.Wave.BlockAlignReductionStream(pcm);

            }
            else if (files[0].EndsWith(".wav"))
            {
                NAudio.Wave.WaveFileReader wavfr = new NAudio.Wave.WaveFileReader(Settings.Default.m + "\\" + selected_music + ".wav");
                var pcm = new NAudio.Wave.WaveChannel32(wavfr);
                pcm.PadWithZeroes = false;
                stream = new NAudio.Wave.BlockAlignReductionStream(pcm);
            }
            else throw new InvalidOperationException("file type is not supported.");

            output = new NAudio.Wave.WaveOut();
            output.Init(stream);

        }

最初,我使用的是DirectSoundOut而不是WaveOut类,我能够克服这个问题,但这个问题不支持恢复。

我知道有很多人已经面临过这个问题,但是这两种情况(恢复和解雇PlaybackState)都有其他的选择吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-09 16:21:43

必须将WaveCallbackInfo添加到WaveOut类的构造函数中,才能引发事件。

代码语言:javascript
复制
output = new NAudio.Wave.WaveOut(WaveCallbackInfo.FunctionCallback());
output.PlaybackStopped += (pbss, pbse) => { Debug.WriteLine("Stopped"); };
票数 3
EN

Stack Overflow用户

发布于 2013-06-09 21:03:06

摆脱BlockAlignConversionStreamWaveFormatConversionStreamMp3FileReader直接发射PCM (假设您使用的是NAudio的最新版本)。

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

https://stackoverflow.com/questions/17011149

复制
相关文章

相似问题

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