- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我曾尝试编写播放声音文件的程序,但到目前为止还没有成功。我无法理解代码的某些部分:
InputStream is = new FileInputStream("sound file");
AudioFormat af = new AudioFormat(float sampleRate, int sampleSizeInBits, int channels, boolean signed, boolean bigEndian); // I don't understand it's constructor
long length ; // length in sample frames
// how cani i know the length of frames ?
AudioInputStream ais = new AudioInputStream( is , af , length );
// open ( ais );
// start playing by invoking start method
AudioFormat
的构造函数中如何预先知道采样率、文件大小、声道是什么以及最后的2个 boolean 变量?length
)?最佳答案
In addition to the encoding, the audio format includes other properties that further specify the exact arrangement of the data. These include the number of channels, sample rate, sample size, byte order, frame rate, and frame size. Sounds may have different numbers of audio channels: one for mono, two for stereo. The sample rate measures how many "snapshots" (samples) of the sound pressure are taken per second, per channel. (If the sound is stereo rather than mono, two samples are actually measured at each instant of time: one for the left channel, and another for the right channel; however, the sample rate still measures the number per channel, so the rate is the same regardless of the number of channels. This is the standard use of the term.) The sample size indicates how many bits are used to store each snapshot; 8 and 16 are typical values. For 16-bit samples (or any other sample size larger than a byte), byte order is important; the bytes in each sample are arranged in either the "little-endian" or "big-endian" style. For encodings like PCM, a frame consists of the set of samples for all channels at a given point in time, and so the size of a frame (in bytes) is always equal to the size of a sample (in bytes) times the number of channels. However, with some other sorts of encodings a frame can contain a bundle of compressed data for a whole series of samples, as well as additional, non-sample data. For such encodings, the sample rate and sample size refer to the data after it is decoded into PCM, and so they are completely different from the frame rate and frame size.
关于java - 了解 AudioFormat 、 AudioInputStream 和 start 方法的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6863384/
我知道需要使用JMF来处理视频,但是JMF api非常困惑且难以理解。我看到类似this的东西但我想做的与我想的相反。 最佳答案 问题已解决。完成上述操作需要Xuggler。 JMF除了播放视频之外没
文件格式为“PCM_SIGNED 44100.0 Hz,16位,立体声,4字节/帧,小端”,我想在放大两个文件之一的同时将它们添加在一起。我计划读取两个 wav 将它们放入两个 audioinputs
我有一个 AudioInputStream 不支持 skip()。它由 jflac 支持。 因此,我正在使用 read ( byte[] ) 调用并转储数据,以在文件中向前跳转。 不幸的是,搜索 17
我仍在致力于我的小项目,用 JAVA 创建一个混音控制台,但我遇到了一个新的障碍。我正在尝试从 byteArray 创建一个 audioInputStream,然后读取它以听到声音。但我的代码有问题:
我需要从 AudioInputStream 获取值并将其存储在 byte[] 中。调用 read(byte[]) 返回 -1。如果我能够读取整数值,我可以将其转换为 byte[]。我该如何解决这两个问
我已使用 AudioInputStream 将背景音频插入到我的程序中。 当我按下 On 时,背景音频将播放,而 Off 将停止播放背景音频。 这是我的音频播放部分的代码: public void p
大家好。我有一个音频类,可以播放 .wav 文件。但我想永远循环它。 import javax.sound.sampled.AudioInputStream; import javax.sound.s
I am trying to skip a negative number of bytes with AudioInputStream skip(long bytes) method . 问题是试图
是否有一个很好的(纯Java)开源库来获取从 AudioInputStream 获取的样本的频谱? 最佳答案 有几个FFT库,例如Apache Commons Math包括 FFT。 但请记住,频谱估
如何声明/访问追加文件 AudioInputStream 数据以将其写入 for 循环之外的磁盘?当我将磁盘写入命令放入 for 循环中时,它几乎按预期工作,但外部无法识别附加文件。 import j
我的程序的一部分需要加载声音并在提示时播放它们。目前,我支持加载已作为资源“嵌入”到项目中的 .wav 文件。为此,我使用如下代码行: sounds[i+1] = AudioSystem.getAud
有随机访问AudioInputStream的例子吗?就像任何普通音频播放器一样 - 当您将小节带到任何您想要的地方并从任何地方播放时,我如何以这种方式访问音频流中的字节? 像这样简单的东西:rea
我想创建 2 个可以启动和停止背景音频的 JMenuItem。 这是我的代码: public class MainClass extends JFrame { private AudioInp
我正在创建一个应用程序来播放音频文件 (WAV)。播放效果非常好,我做了一个小功能,通过 audioInputStream 的 skip() 方法向前“跳跃”X(秒),这也完美地工作了。 我的问题是实
我试图在 Java 中获取音频文件的持续时间。 我编写了这段代码(在 stackoverflow 的帮助下): public static Duration getDuration(File file
我想获得 AudioInputStream 的持续时间(以微秒为单位)。我怎样才能轻松做到这一点?我找到了 how can I get duration of an audio file: ,但不能这
我在找出我使用 AudioInputStream 实际读取的内容时遇到了一些问题。下面的程序只是打印我得到的字节数组,但实际上我什至不知道这些字节是否实际上是样本,因此字节数组是音频wave。 Fil
所以在我的代码中,我创建了一个音频输入流: try{ File f = new File(main.getWavFileName(0, tab)); AudioInputStrea
我正在播放通过 AudioInputStream 接收的音频。音频数据存储在远程服务器上。 检索AudioInputStream通过AudioSystem.getAudioInputStream(ne
我尝试使用 javax.sound library. 更改 wav 文件的采样率 实现我想要的方法后,我尝试了一下,它成功了!但创建的 .wav 文件只有几个字节大。确切地说,它只有 2.090 字节
我是一名优秀的程序员,十分优秀!