java命名空间javax.sound.sampled接口targetdataline的类成员方法:
read定义及介绍
本文导语:
read
int read(byte[] b,
int off,
int len)
从数据行的输入缓冲区读取音频数据。将所请求的字节数读入指定数组,起点是该数组中的指定偏移量,以字节为单位。读取所完请求的数据量之前,此方法发生阻塞。不过,如...
read
int read(byte[] b,
int off,
int len)
- 从数据行的输入缓冲区读取音频数据。将所请求的字节数读入指定数组,起点是该数组中的指定偏移量,以字节为单位。读取所完请求的数据量之前,此
iis7站长之家发生阻塞。不过,如果在读取完所请求的数据之前数据行已关闭、停止、排空或刷新,则该方法不再阻塞,但它会返回至今为止读取的字节数。
可以使用 dataline
接口的 available
方法确认可不受阻塞地读取的字节数。(在保证可以不受阻塞地读取此字节数时,不保证试图读取其他数据不会发生阻塞。)
要读取的字节数必须表示整数形式的样本帧数,比如:
[ bytes read ] % [frame size in bytes ] == 0
返回值将始终满足此要求。读取表示非整数形式的样本帧数的字节数的请求无法完成,并且可能导致 illegalargumentexception。
- 参数:
b
- 将在此方法返回时包含所请求输入数据的字节数组off
- 数组开始处的偏移量,以字节为单位len
- 请求的读取字节数
- 返回:
- 实际读取的字节数
- 抛出:
illegalargumentexception
- 如果所请求的字节数不表示整数形式的样本帧数,或者 len
为负。
arrayindexoutofboundsexception
- 如果 off
为负,或者 off+len
大于数组 b
的长度。- 另请参见:
sourcedataline.write(byte[], int, int)
,
dataline.available()