我正在尝试用Java编写一些基本的声音编辑程序,但是我的16位WAVE文件格式遇到了很多麻烦。 当我问Java它认为我的声音文件有多少个样本时,它给我的数字是我预期的两倍。当我告诉Java生成一个80000字节样本的正弦波时,它播放了1秒钟而不是2秒钟(尽管采样率约为每秒40000)。 经过更多搜索后,我意识到文件的“帧大小”为2,“采样”实际上是2个字节而不是1个字节,并且这被称为16位音频文件。作为实验,我将声音文件写入字节数组,将其他每个字节设置为0,然后播放结果。当我仅保留奇数样本时,声音文件会播放一小段静…

2020年12月1日 0条评论 70点热度 阅读全文

经过几天的互联网研究,我来到这里寻求帮助。我目前正在为 friend 们开发一个简短的2D游戏(实际上只是为了好玩),几天前我就了解了Clips。在此游戏中,玩家可以收集物体(几乎就像马里奥中的硬币一样)。我的问题是,在收集硬币时,我听到的声音很短(50kB约为1秒),如果玩家在一秒钟内收集3个硬币,则Clip会使游戏滞后。如果先前的剪辑已结束,则没有滞后。但是,如果先前的Clip尚未结束,则尝试再次播放Clip会使游戏滞后(非常多)。 我有一台很小的计算机,不是很强大,但是这个问题真令人讨厌。当玩家 throw …

2020年11月29日 0条评论 46点热度 阅读全文

我想做的是从音频文件中生成10秒的摘要,然后在此过程中将其转换为WAV。我正在使用javazoom vorbisspi和mp3spi库。它适用于mp3和WAV文件,但不适用于.ogg文件。 我尝试列出我想要的编码的可用目标格式(PCM签名),而且很奇怪,对于mp3文件,可用格式的列表为空(尽管它可以工作),而ogg文件的列表却显示了我想要的PCM编码(尽管它没有)不起作用)。但是,播放.ogg文件是可行的。这是我的代码: AudioInputStream in = null; AudioInputStream di…

2020年11月28日 0条评论 93点热度 阅读全文

我试图互相播放一些WAV文件。我尝试了这种方法: for (String file : audioFiles) { new AePlayWave(file).start(); } 但这同时发挥了所有作用。所以我需要一个看起来像这样的函数: public void play(Vector<String> audioFiles); vector 包含文件,例如: "test1.wav", "test2.wav" 我已经寻找了四个多小时,但似乎找不到有效的解决方案:( 我还尝试将WAV文件连接到一个Audio…

2020年11月25日 0条评论 57点热度 阅读全文

由于Android不支持javax.sampled声音API,因此我试图为WAV FILE构建AudioInputStream和Audioformat。我试图通过使用此https://ccrma.stanford.edu/courses/422/projects/WaveFormat/读取WAV文件来构建WAVE FILE类。并使用此wave对象,我尝试创建自己的AudioInputStream ..但它不起作用。任何帮助都受到高度赞赏? AudioInputstream仅包含PCM数据还是什么? 解决方案如下: …

2020年11月7日 0条评论 39点热度 阅读全文

对于我的Android游戏原型(prototype),我正在使用以下方法回放.wav资源: MediaPlayer mp = MediaPlayer.create(context, soundID); mp.start(); 这在Eclipse Android仿真器中可以正常工作,但是当我在G1上运行相同的程序时,没有声音。这可能是什么原因? 解决方案如下: 尝试以这种方式进行操作: Uri myUri = ....; // initialize Uri here MediaPlayer mediaPlayer =…

2020年11月1日 0条评论 32点热度 阅读全文

我正在开发一个Android应用,该应用接收一个字节数组,该字节数组是GSM 6.10压缩的.wav文件。这是我尝试过的事情: 由于AudioTrack不支持GSM 6.10压缩的wav,因此无法使用AudioTrack播放它。 保存byte []并使用MediaPlayer播放它不起作用。它只是产生静态的。 我尝试的最后一个想法不适用于此应用程序,而只是在黑暗中打了个球,以缩小问题所在的范围。在运行该应用程序之前,我将WAV保存到了SD卡中。然后,我尝试使用MediaPlayer播放此已保存的文件。有效。然后,我…

2020年10月27日 0条评论 27点热度 阅读全文

我想编写一个简单的程序,该程序需要一个中等大小的wav文件(大约60秒)并将其切成1秒长的相同格式(1.wav,2.wav等)的段...有没有一个简单的C++或Java库可以做到这一点?我不想操纵标题信息 解决方案如下: 看libsndfile。另请参阅this其他文章。您将要: 删除WAV header 以访问原始PCM示例数据 循环播放sample_rate样本,该样本将表示1秒钟的音频,并将这些缓冲区打包到一个新的WAV文件(带有标题)中,直到达到原始的EOF。 高温超导

2020年10月26日 0条评论 52点热度 阅读全文

Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为 on-topic用于堆栈溢出。 7年前关闭。 Improve this question 我需要将不同格式的 wav文件转换为Java中的特定格式( Wave, A-LAW, 8000 Hz, 64 kbps, mono)。 任何人都知道要执行此操作的库或一些源代码示例吗? 任何想法都一样,不胜感激。 解决方案如下: 您可以使用:J…

2020年10月26日 0条评论 43点热度 阅读全文

这个问题是关于用来在this线程上回答的代码。我使用的是Nicholas DiPiazza发布的代码,后来使用的是Andrew Thompson发布的代码。我将第二个AudioWaveformCreator添加到此代码中,并且两个AWC的结果相同。我不知道为什么。我想做的是在一个JOptionpane中显示2个不同的波形(来自不同的文件)。 import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.aw…

2020年10月22日 0条评论 39点热度 阅读全文