Tag: javasound

JAVA音频数据流0s

我一直在编写一个简短的程序,将音频从/ mic转换为扬声器。 我只是在学习大部分内容,但是我的工作已经产生了似乎几乎是我想要的工作模型。 但是,当我打印TargetDataLine缓冲区时,它会打印所有0,就像它已连接和流式传输一样,但无法听到我的输入。 在这一点上,我已经研究了大部分sampled包内容以及在论坛,教程和其他人的代码中可以在线获得的内容,并且由于缺乏已发布的音频代码,我认为我的学习资源几乎耗尽了。 因此,如果任何人有任何建议或资源,我们将不胜感激。 我认为您不需要任何其他代码,但如果您这样做,请问。 此代码使用Eclipse version: 4.3.0.v20130605在我的机器上编译时没有错误或警告Eclipse version: 4.3.0.v20130605 。 这是类的方法索引,可以保存大部分200行代码。 class Stream extends Thread { vars … Stream() setProcessingBuffer() setRenderingBuffer() bytesToString() play() pause() run() (Override) } 码: package moshi; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Line; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.Mixer; import javax.sound.sampled.SourceDataLine; import javax.sound.sampled.TargetDataLine; /** * @author KN * @version 1.0 Build […]

谁能告诉我为什么我的音量控制不起作用?

任何人都可以告诉我为什么我的音量控制不起作用……? import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.sound.sampled.*; import javax.swing.event.*; /**/ public class kkk extends JComponent { static File f1; int prog; static JFrame jf; int al; JLabel time; Timer tr; Button b; int pos=0; Clip c; AudioInputStream a; JSlider s; public static void main(String args[]) { f1=new File(“mm.wav”); jf=new JFrame(); jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); […]

在java问题中使用JLayer在线程中只播放一个mp3文件

我正在使用带有GUI的Java编写的音频播放器。 为了播放mp3文件,我从javazoom中选择了JLayer库,因为我看到它非常受欢迎并且使用过。 我制作了GUI,设法播放播放列表中选定的mp3文件。 我的问题是,如果我在播放按钮或播放列表中的文件上多次按下它会开始播放歌曲多次,因为我按它并且我想在同一个线程中播放它; 如果我再次按下播放按钮,我想再次播放,而不是在当前播放时播放同一首歌。 这是播放mp3文件的代码: public class Playing implements Runnable{ private Player mp3Player; private Thread playerThread; public void createPlayer(FileInputStream file) throws JavaLayerException{ mp3Player = new Player(file); playerThread = new Thread(this); playerThread.start(); } @Override public void run(){ try { mp3Player.play(); } catch (JavaLayerException ex) { Logger.getLogger(Playing.class.getName()).log(Level.SEVERE, null, ex); } } 这是我播放按钮的方法: public void createPlayButton(){ play […]

使用Java从URL获取声音

我正在学习英语,我想开发一个软件来帮助我发音。 有一个名为HowJSay的网站,如果你进入这里: http : //www.howjsay.com/index.php ?word = car immediatly你会听到汽车这个词的发音。 我想开发一个JAVA软件,可以播放这个声音,而无需进入网站=] 我试过这个,但不起作用= / public static void main(String[] args) throws Exception { URL url = new URL(“http://www.howjsay.com/index.php?word=car”); url.openConnection(); AudioStream as = new AudioStream(url.openStream()); AudioPlayer.player.start(as); AudioPlayer.player.stop(as); } 有任何想法吗? 请。

使用Java源数据线进行音频时弹出/破解

我遇到了Java源数据线的问题。 我需要播放一个音调,所以我创建了一个仅代表音调的Tone类。 一切都很好,除了当我播放声音时,扬声器在声音的开头弹出。 有没有什么办法解决这一问题? 这是一个研究项目,需要在没有噼啪声的情况下运行,因为这可能会影响结果。 源代码如下。 谢谢! package edu.jhu.halberda.audiopanamath; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.FloatControl; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.SourceDataLine; import javax.swing.JOptionPane; public class Tone { public enum Channel { LEFT, RIGHT, STEREO }; public static final float SAMPLE_RATE = 44104; // Should be a multiple of 8 protected byte[] buf; protected int hz, msecs; protected […]

AudioInputStream.read方法究竟返回什么?

我发现了一些问题,我实际上是用AudioInputStream read的。 下面的程序只打印我得到的字节数组,但我实际上甚至不知道,如果字节实际上是样本,那么字节数组就是音频波形 。 File fileIn; AudioInputStream audio_in; byte[] audioBytes; int numBytesRead; int numFramesRead; int numBytes; int totalFramesRead; int bytesPerFrame; try { audio_in = AudioSystem.getAudioInputStream(fileIn); bytesPerFrame = audio_in.getFormat().getFrameSize(); if (bytesPerFrame == AudioSystem.NOT_SPECIFIED) { bytesPerFrame = 1; } numBytes = 1024 * bytesPerFrame; audioBytes = new byte[numBytes]; try { numBytesRead = 0; numFramesRead = 0; } […]

修剪音频(mp3或wav文件)

我有一个关于修改音频文件的快速问题。 我可以通过输入流(解码等)访问样本,但我无法找到一种方法来操作该输入流中的样本(可能是多个样本的情况)。 我想要实现的是获取Ex A.mp3文件, A.mp3删除几秒钟,最后将其存储到新文件中。 通过查看JavaSoundApi示例 ,我发现可以通过以下方式创建文件: File fileOut = new File(someNewPathName); AudioFileFormat.Type fileType = fileFormat.getType(); if (AudioSystem.isFileTypeSupported(fileType,audioInputStream)) { AudioSystem.write(audioInputStream, fileType, fileOut); }

Java Length Unlimited AudioInputStream

我有一堆代码,在运行时会产生程序性声音。 不幸的是,它只持续几秒钟。 理想情况下它会运行直到我告诉它停止。 我不是在谈论循环,生成它的算法目前提供2 ^ 64个样本,所以它在可预见的未来不会用完。 AudioInputStream的构造函数接受第三个输入,理想情况下我可以删除它。 我可以提供一个庞大的数字,但这似乎是错误的方式去做。 我考虑过使用SourceDataLine,但理想情况下算法会按需调用,而不是向前运行并编写路径。 思考?

如何在java声音录制时绘制声音图表?

我成功地从我的微型手机录制java声音,并可以像附加图像一样绘制录制的波形文件图形。 (我试图从这里上传图像很多,但每次都失败。我也使用了tinypic但上传失败了,我认为我的网络连接有一些错误,我会在这里上传。) 我还附上了我的所有代码。 http://pastebin.com/EgW2ZcyJ 现在,我的问题是我想在实时录制时显示声音的图形。如果我尝试读取用于新线程录制的音频输入流并将此线程hibernate1秒直到录制完成。 但是在这种方法中,它给出帧长度为-1,因此无法绘制任何内容。 所以我如何绘制图表意味着如何在实时录制时获取录制声音的帧[来自音频输入流的字节],因此我可以使用它在不同的线程中使用它绘制图形,这样我就可以精确地模拟什么窗口的录音机提供? 谢谢Mihir Parekh

java.io.IOException:标记/重置不支持Java音频输入流/缓冲输入流

我正在创建一个2D Java平台游戏,我正试图在游戏运行时从.wav文件中播放音频…… 下面是我创建的AudioPlayer类,用于将资源加载到音频输入流中 import javax.sound.sampled.*; import java.io.*; import java.util.*; import java.net.*; public class AudioPlayer { private Clip clip; public AudioPlayer(String s) { try { /************/ InputStream is = getClass().getResourceAsStream(s); AudioInputStream ais; BufferedInputStream bis = new BufferedInputStream(is); ais = AudioSystem.getAudioInputStream(bis); /************/ AudioFormat baseFormat = ais.getFormat(); AudioFormat decodeFormat = new AudioFormat( AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16, baseFormat.getChannels(), baseFormat.getChannels() * […]