Tag: 音乐

内部录音程序

注意:这不是使用麦克风的东西。 我想内部录制音频。 我想用C#或Java编写一个程序来记录发送到计算机中扬声器的音频数据。 最终产品将允许用户点击“记录”按钮,此时正在播放的任何内容都将在内部记录,直到用户点击“停止”按钮,此时收集的所有数据将保存到音频文件中,如wav,mp3等 我有一台MacBook Pro可以并行运行Windows 7。 我可以访问多台PC,因此我也可以在纯Windows平台上工作。 理想情况下,无论什么平台都没关系。 我不知道从哪里开始 – 我用音乐做过的最多就是用Java播放.wav文件。 如果有人对这两种语言都有任何建议,参考,建议,技术偏好,我很乐意在这里!

Java:比较两个音频文件,看它们是否是相同的“音乐”

我正在研究音乐流媒体服务,我遇到了一个问题:如何比较两个音频文件,看它们是否代表同一首歌。 这些文件可能没有相同的扩展名(例如OGG,mp3,wma)但可能仍然是同一首歌,并且它们可能具有不同的比特率和音量级别。

用java流音乐

我目前正在编写一些聊天程序,现在想通过客户端命令播放音乐,如: /music http://somewebsite.com/somesong.mp3 因此,链接将从发送歌曲的客户端发送到服务器。 然后服务器应该不下载歌曲,将其流式传输到每个客户端(他们也不应该下载它)。 问题是,我不知道如何通过基于TCP的连接流式传输mp3。 我的问题是,如果有人能够提供我需要的库/教程/想法/代码示例。 作为替代方案,从一个客户端的计算机直接流式传输音乐也是可以的。 如果我(作为客户端)在我的机器上播放歌曲(使用某些音乐播放器,如VLC或类似),然后输入某个命令(可能/流 ),声卡中的声音将流式传输到服务器,然后传输到每个客户登录。 如果你能为我提供一些建议,那将是非常棒的,谷歌到目前为止并没有真正帮助,主要是因为我不太明白我应该搜索什么。 提前致谢!

音频分析:频率与音调

我正在设计一个简单的调谐器,所以我的目标是显示一个音符名称(A,B,F#)和理论声音与实际输入之间的距离 。 我对音频和信号处理完全陌生,所以我做了一些研究,我发现了一个名为快速傅里叶变换的东西 ,它将分析字节并给出频率。 此外,我发现了一些Java库,如常见的数学和JTransforms,因此我不会自己编写硬代码。 我相信这一切,因为每个范围频率可以直接映射到平等气质的音符,但后来我发现这个新的(对我来说)单词叫做音高 :它被认为与频率紧密相关,但并不完全相同事情并且要难得多,属于那个心理声学领域。 所以我的问题是,有人可以清楚地概述音高和频率之间的差异,也许可以告诉我哪个调谐器处理?

Java音乐播放器:歌曲信息和播放

在Android中,我们可以使用媒体播放器在设备上播放歌曲,使用光标来获取轨道信息(操作系统会跟踪)。 我的问题是,这些Java的等价物是什么? 注意:我见过有人提到JavaFX,但是默认情况下这似乎没有安装JVM,因此我的程序将不再是跨平台的。 有什么建议么? 注意:这些都是本地文件,但它们可能是任何音频文件类型。

你怎么玩一个长的AudioClip?

我写了一个简单的类来在一个简单的游戏中播放音频文件。 它适用于枪声或爆炸等小声音,但当我尝试将它用于背景音乐时,我收到此错误:“无法分配剪辑数据:请求的缓冲区太大。” 我假设这意味着文件太大,但我怎么能解决这个问题呢? 资源: import java.io.File; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; public class Sound{ private Clip clip; public Sound(String filepath){ System.out.println(filepath); File file = new File(filepath); try { clip = AudioSystem.getClip(); AudioInputStream inputStream = AudioSystem.getAudioInputStream(file); clip.open(inputStream); } catch (Exception e) { System.err.println(e.getMessage()); } } public void play(){ System.out.println(“play”); if(clip.isActive()){ clip.stop(); } clip.setFramePosition(0); clip.start(); } […]