2

我用这个类来播放我的 Wav 文件。

它非常好,但是如何在某个位置(KB 或秒)开始我的 wav 文件?

auline.start();
    int nBytesRead = 0;
    byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];



    try {
        while (nBytesRead != -1) {
            nBytesRead = audioInputStream.read(abData, 0, abData.length);
            System.out.println("s");
            if (nBytesRead >= 0)
                auline.write(abData, 0, nBytesRead);
        }
    } catch (IOException e) {
        return;
    } finally {
        auline.drain();
        auline.close();
    }

这是代码的一部分。

4

2 回答 2

1

A Clip(1) 可以轻松地从需要的任何地方开始声音(以秒为单位)。有关示例,请参阅JavaSound 信息Clip中的代码。

  1. 尤其看。
于 2011-08-05T07:15:12.320 回答
0

使用这个值offset

0 < offset < lengthOfArray

因此它将从当前偏移量值开始读取,因此只写入读取的数据。现在您正在使用的值offset = 0

auline.write(abData, 0, nBytesRead) --- > auline.write(abData, offset, nBytesRead)

其中offset大于 0 但小于nBytesRead 参见文档#write(byte[], int, int)

于 2011-08-05T03:41:30.540 回答