Tag: audio

捕捉当前正在播放的声音

是否可以捕获当前在计算机上播放的声音? 那么能够将其保存为mp3会很好,但我认为这样做有一些法律问题,所以wav也可以。 我环顾四周,有人建议使用虚拟音频线( c#中的Capture Sound输出 ),从输出端口到麦克风端口,这是必要的吗? 我不是在寻找完整的源代码来做到这一点,虽然这样做会很好,就好像它是可能的,也许是指向我应该关注的libary的指针。 一个。

AudioClip的频率和音高关系 – Unity3D

我试图仅使用6个音频剪辑重新创建全系列的吉他。 我想有一种设置音频剪辑频率的方法,但audio.frequency只返回基于压缩格式而不是实际音调的音频频率。 我知道我可以阅读GetSpectrumData,但是这个解决方案相当复杂,需要进行一些傅里叶变换分析或类似的东西。 影响音高,很容易改变音调,所以我可以上下,但是有办法弄清楚使用的步骤是什么。 void Update () { CheckAudio(KeyCode.Q, 1.0f); CheckAudio(KeyCode.W, 1.1f); CheckAudio(KeyCode.E, 1.2f); CheckAudio(KeyCode.R, 1.3f); CheckAudio(KeyCode.T, 1.4f); } void CheckAudio(KeyCode key, float pitch) { if (Input.GetKeyDown (key)) { audio.pitch = pitch; audio.Play (); } } 我听说听起来不对劲。 知道初始音调E4 329.63Hz,音高为1是否有任何影响音高的方程式,我会得到下一个键F4 349.23Hz(或足够接近)? 还必须考虑Unity AudioSource将音调限制在-3/3范围内(我认为这超出了需要)。 编辑:添加一些个人研究。 似乎音高1是初始音符,设置为2给出相同的音高一个八度。 由于半音阶(钢琴上的所有黑白音符)都是12个键,我假设每步使用1/12应该这样做。 听起来很接近,但我觉得它不太对劲。 这是新代码: [SerializeField] private AudioSource audio; float step = 1f/12f; […]

计算MP3帧的长度(以毫秒为单位)

假设一个MP3帧长度以字节为单位104:如何以毫秒为单位得到它? 是否有任何公式或其他事情要做?

为C#寻找一个简单的MP3库

我正在写一个更大的项目,项目的一部分正在播放MP3文件。 没什么好看的,只是播放播放列表中的文件,开始/停止,下一个/上一个(可以在库外完成),快进/快退。 我正在寻找一个(免费)库,或任何其他方法。 依靠外部玩家不是一种选择。

如何比较两个捕获以查看哪个更响亮?

给定从麦克风捕获的两个字节数据arrays,如何确定哪个数据中的噪声峰值更多? 我假设有一个算法我可以应用于数据,但我不知道从哪里开始。 说到这一点,我需要能够确定婴儿哭闹的时间与房间内的环境噪音。 如果它有帮助,我使用Microsoft.Xna.Framework.Audio.Microphone类来捕获声音。

在控制台上播放声音 – C#

我正在C#上编写一个Console应用程序,我希望在连续显示文本时播放声音。 这就是我所做的: static SoundPlayer typewriter = new SoundPlayer(“typewriter”); static public void print(string str, int delay) { Thread skipThread = new Thread(skipText); typewriter.PlayLooping(); textgap = delay; foreach (char c in str) { Console.Write(c); if (textgap != 0) Thread.Sleep(textgap); } typewriter.Stop(); } typewriter.wav导入到.cs文件旁边的项目中,我copy always选择copy always 。 当我运行此代码时,在开始播放声音时弹出错误说明Please be sure a sound file exists at the specified location. […]

SoundPlayer导致内存泄漏?

我正在用C#编写一个基本的写作应用程序,我想让程序在输入时输出打字机的声音。 我已经将我的RichTextBox上的KeyPress事件挂钩到一个函数,该函数使用SoundPlayer每次按下一个键时播放一个简短的wav文件,但是我注意到一段时间后我的计算机慢慢爬行并检查我的进程,audiodlg .exe正在使用5 GIGABYTES的RAM。 我正在使用的代码如下: 我将SoundPlayer初始化为程序启动时的全局变量 SoundPlayer sp = new SoundPlayer(“typewriter.wav”) 然后在KeyPress事件上我只是打电话 sp.Play(); 有人知道导致大量内存使用的原因是什么吗? 该文件不到一秒钟,因此它不应该太过堵塞。

如何检测WP8中是否播放背景音乐?

如果您知道如果您的应用程序在未经用户同意的情况下停止当前正在播放的音乐,则在您知道无法通 我确实在这里看到了这个可能适用于WP7应用程序的问题,但它显然不适用于WP8。 我认为它不起作用,因为WP8操作系统不支持XNA(它只是向后兼容,如果您使用7.1开发应用程序)。 有没有人遇到过在WP8中检测背景音乐的解决方案。

c#用一行c#代码播放声音

我和其他一些程序员一起玩游戏。 您可以根据需要编写一个C#的oneline和尽可能多的xaml行。 任何人都知道如何在分号前一行发出声音; 到目前为止,这是我能够接近的 SoundPlayer simpleSound = new SoundPlayer(@”c:\Media\pacman.wav”); simpleSound.Play(); 编辑:试过Blorgbeard的代码,但声音因某些原因没有播放 if (Listbox.SelectedItem.ToString() == “2 Good 2 B True”) { try { (new SoundPlayer(@”/Project;component/sounds/pacman.wav”)).Play(); } catch (Exception ex) { Console.Error.WriteLine(ex.Message); } }

从多通道wav文件中读取单个通道

我需要从wav文件中提取单个通道的样本,该文件最多包含12个(11.1格式)通道。 我知道在正常的立体声文件中,样本是交错的,先是左边,然后是右边,就像这样, [1st L] [1st R] [2nd L] [2nd R]… 那么,要阅读左声道,我会这样做, for (var i = 0; i < myByteArray.Length; i += (bitDepth / 8) * 2) { // Get bytes and convert to actual samples. } 为了获得正确的通道,我只需要做for (var i = (bitDepth / 8)… 。 但是,对于超过2个频道的文件,使用了什么顺序?