Tag: audio

从头开始创建一个mp3文件C#

作为一些实验的一部分,我想到了一些东西,我怎样才能在C#中从头开始创建一个.mp3文件,实际上听起来像是什么东西,例如,创建一个播放笔记的mp3文件:C#或B flat? 我怎样才能实现这一点,它必须是一个mp3文件,而不是一个wav,或其他任何东西。

捕获扬声器输出

我已经看到我可以使用Windows.Media.Audio命名空间中的元素捕获麦克风和声音文件。 我想要捕捉扬声器输出 。 例如,我点击某些东西,系统发出警报声 – 我希望能够捕获它。 有没有办法使用Windows.Media.Audio元素(而不是更低级别进入Win32调用)?

如何在C#中播放提取的波形文件字节数组?

目前,我已设法分离WAVE文件的左右声道,并将标头包含在byte []数组中。 我的下一步是打两个频道。 如何才能做到这一点? 这是一段代码: byte[] song_left = new byte[fa.Length]; byte[] song_right = new byte[fa.Length]; int p = 0; for (int c = 0; c < 43; c++) { song_left[p] = header[c]; p++; } int q = 0; for (s = startByte; s < length; s = s + 3) { song_left[s] = sLeft[q]; q++; […]

从麦克风实时播放音频。 C#

我期待创建一个应用程序,允许我从我的麦克风录制并通过其他电脑播放录音。 在这一点上,我只是希望它能在我自己的电脑上播放,所以我可以让它工作。 过去几个小时我一直在看NAudio,看起来它可以帮助我实现这个目标。 我只是想知道是否有其他人有这方面的经验,如果可能的话? 谢谢,斯图尔特

如何使用NAudio播放音频原始数据的字节数组?

byte[] bytes = new byte[1024]; 假设bytes是一个充满音频原始数据的数组。 如何使用WaveOut对象播放此字节数组? _waveOut.Init(bytes); // <- Error: cannot resolve method. _waveOut.Play();

通过XAudio2播放窦

我正在使用XAudio2制作音频播放器。 我们以640字节的数据包流式传输数据,采样率为8000Hz,采样深度为16字节。 我们正在使用SlimDX来访问XAudio2。 但是在播放声音时,我们注意到声音质量很差。 例如,这是一个3KHz的正弦曲线,用Audacity捕获。 我已经将音频播放器浓缩到了基础,但音频质量仍然不好。 这是XAudio2,SlimDX或我的代码中的错误,还是仅仅是从8KHz到44.1KHz时出现的伪像? 最后一个似乎是不合理的,因为我们还生成了由Windows Media Player完美播放的PCM wav文件。 以下是基本实现,它生成断开的正弦。 public partial class MainWindow : Window { private XAudio2 device = new XAudio2(); private WaveFormatExtensible format = new WaveFormatExtensible(); private SourceVoice sourceVoice = null; private MasteringVoice masteringVoice = null; private Guid KSDATAFORMAT_SUBTYPE_PCM = new Guid(“00000001-0000-0010-8000-00aa00389b71”); private AutoResetEvent BufferReady = new AutoResetEvent(false); private PlayBufferPool […]

检查应用程序是否发出声音

今天我在这里问你如何“ 理解 ”给定的应用程序是否发出声音。 在Windows 7和8上,我使用以下代码(库CSCore音频 ) […] AudioSessionManager2 sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render); AudioSessionEnumerator sessionEnumerator = sessionManager.GetSessionEnumerator(); AudioSessionControl2 sessionControl; foreach (AudioSessionControl session in sessionEnumerator) { sessionControl = session.QueryInterface(); if (sessionControl.Process.MainWindowTitle.StartsWith(“my_test”)) { sessione = sessionControl; audio = session.QueryInterface(); break; } } control.Text = sessione.Process.MainWindowTitle + “[” + audio.PeakValue + “]”; […] 它运行良好,但不适用于Windows XP。 有没有办法“ 普遍 ”去做呢? 如果有一种方法可以用Java做到这一点会更好,所以在Linux上工作(目前我不需要,但可能在将来)

高内存使用情况在按键上播放带有NAudio的MP3

我正在使用C#,WPF和NAudio 。 当按下某个键时,我在应用程序exe播放embedded资源mp3 。 如果反复按下某个键,RAM的使用量将继续超过400MB并且永不下降。 即使调用GC ,在对象上使用Flush()和Dispose()似乎也不会释放内存。 当我使用string路径而不是MemoryStream从硬盘驱动器上的external资源播放时,这种情况MemoryStream 。 它曾经保持大约50MB RAM。 public static MemoryStream ms = null; public static WaveStream wav = null; public static WaveOutEvent output = null; // Embedded Resource sound1.mp3 MemoryStream sound1 = new MemoryStream(Properties.Resources.sound1); // Key Press // if (e.Key == Key.Space) { ms = new MemoryStream(StreamToBytes(sound1)); wav = new Mp3FileReader(ms); […]

在C#中更改音频格式

我想将音频文件格式更改为另一种格式。 具体来说,我想将任何音频文件转换为6khz,16位,单声道,PCM wav格式。 我该如何应对这个问题。 再次提前感谢。

从代码中静音系统

我正试图从我的C#控制台应用程序中静音PC扬声器。 我已经尝试了本网站上建议的代码,但它不会影响我的机器上的音量。 我需要代码在Win7上工作,我认为代码只适用于XP。 我也试过这个: [DllImport(“winmm.dll”, SetLastError = true, CallingConvention = CallingConvention.Winapi)] public static extern int waveOutSetVolume(IntPtr uDeviceID, int dwVolume); waveOutSetVolume(IntPtr.Zero, 0); 但是当调用waveOutSetVolume方法时,系统不会静音,也不会抛出任何错误。 有没有办法在Win7中使用C#静音PC?