- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 NAudio 创建一个简单的音频播放器,但我找不到可以更改 WaveOut
的 PlaybackState
的解决方案> 流式传输到“已停止”并因此触发 PlaybackState
事件。
我是这样做的,如下图所示:
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)是否有替代方案?
最佳答案
您必须将 WaveCallbackInfo 添加到 WaveOut 类的构造函数中才能引发事件。
output = new NAudio.Wave.WaveOut(WaveCallbackInfo.FunctionCallback());
output.PlaybackStopped += (pbss, pbse) => { Debug.WriteLine("Stopped"); };
关于c# - NAudio PlaybackState 永不停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17011149/
我正在使用 NAudio 创建一个简单的音频播放器,但我找不到可以更改 WaveOut 的 PlaybackState 的解决方案> 流式传输到“已停止”并因此触发 PlaybackState 事件。
我有一个音乐应用程序,我想确定在应用程序关闭时播放是否已暂停(由于诸如电话或 AirPods 从耳朵中取出等事件) 我的第一个方法是在 viewWillAppear 中运行一个函数来检查 if med
我对使用 NAudio 有点陌生,所以我肯定遗漏了一些重要的东西,因此这个问题。 从示例/演示代码开始,我整理了一个尽可能简单的类来播放 MP3 或 WAV 文件: public class Audi
@Override public void onPlayerStateChanged(boolean playWhenReady, int playbackState) { switch (p
我收到错误:“playbackState”仅在 iOS 13.0 或更高版本中可用 但是我的 iOS 11 应用程序中使用了 MPNowPlayingInfoCenter.playbackState。
我是一名优秀的程序员,十分优秀!