【问题标题】:NAudio - Playback stops if called Play() againNAudio - 如果再次调用 Play() 则播放停止
【发布时间】:2013-04-03 19:59:55
【问题描述】:

我正在编写游戏并使用 NAudio 和 WaveOut。发生碰撞时播放声音。问题是声音播放了几次,如果碰撞再次发生几秒钟后,声音就不会播放了。我正在使用此代码。

WaveOut device = new WaveOut();
WaveStream source = new Mp3FileReader("hit.mp3");

device.Init(source);

然后播放它,

source.Position = 0;
source.CurrentTime = TimeSpan.Zero;
device.Play();

我是不是忘记了什么?

谢谢。

【问题讨论】:

  • 什么是异常?我认为播放两次后声音暂停了。
  • 你是否为每个 paly 制作新的 WaveOut device = new WaveOut();WaveStream source
  • 没有。它们只制作一次。设备是一个类级别的变量,我将通过调用上述语句来播放它。
  • @IRSOG 没有。没有抛出异常。声音播放了 10-15 次,然后就再也没有播放过。
  • :如果每次调用都创建一个新的 WaveOut,它会再次发生吗?

标签: c# naudio


【解决方案1】:

尝试看看 Mark Heath 的这篇关于如何使用 NAudio 进行“即发即弃”音频播放的说明:

http://mark-dot-net.blogspot.co.uk/2014/02/fire-and-forget-audio-playback-with.html

【讨论】:

  • 感谢您的回答,但我已经开始使用 OpenAL。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多