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