Suh*_*pta 6 java audio javasound
我曾尝试编写播放声音文件的程序但到目前为止都没有成功.我无法理解代码的某些部分:
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
Run Code Online (Sandbox Code Playgroud)
AudioFormat
我如何才能知道采样率,文件大小,通道是什么,以及最后的2个布尔变量?length
)的值?除了编码之外,音频格式还包括进一步指定数据的确切排列的其他属性。其中包括通道数、采样率、样本大小、字节顺序、帧速率和帧大小。声音可能有不同数量的音频通道:一个用于单声道,两个用于立体声。采样率测量每个通道每秒拍摄的声压“快照”(样本)数量。(如果声音是立体声而不是单声道,则实际上在每个瞬间测量两个样本:一个用于左声道,另一个用于右声道;但是,采样率仍然测量每个声道的数量,因此速率为无论通道数量如何,都是相同的。这是该术语的标准用法。)样本大小表示使用多少位来存储每个快照;8和16是典型值。对于 16 位样本(或任何其他大于字节的样本大小),字节顺序很重要;每个样本中的字节以“little-endian”或“big-endian”样式排列。对于像 PCM 这样的编码,帧由给定时间点所有通道的样本集组成,因此帧的大小(以字节为单位)始终等于样本大小(以字节为单位)乘以数字的频道。然而,对于某些其他类型的编码,帧可以包含整个系列样本的压缩数据包,以及附加的非样本数据。对于此类编码,采样率和样本大小是指解码为PCM后的数据,因此它们与帧率和帧大小完全不同。
归档时间: |
|
查看次数: |
6202 次 |
最近记录: |