sách gpt4 ai đã đi

java - 确定何时关闭 Java 中的声音播放线程

In lại 作者:行者123 更新时间:2023-12-01 17:40:46 26 4
mua khóa gpt4 Nike

我正在 Java 中播放声音文件,并且正在寻找一种简单的方法来确定声音文件何时完成播放,以便我可以终止线程。有没有简单的方法可以实现这一点?

1 Câu trả lời

抱歉,这有点晚了,但我今天刚刚遇到一个问题,这个问题听起来很熟悉。在一些游戏代码中,我使用 javax.sound.sampled.Clip 来播放各种声音,我发现如果我在完成后没有显式调用 line.close() ,则探查器中的 native 线程数将会增加-rocket 直到出现 OutOfMemory 错误。

// this just opens a line to play the sample
Clip clip = AudioSystem.getClip();
clip.open( audioFormat, sounddata, 0, sounddata.length);
clip.start();

// at this point, there is a native thread created 'behind the scenes'
// unless I added this, it never goes away:
clip.addLineListener( new LineListener() {
public void update(LineEvent evt) {
if (evt.getType() == LineEvent.Type.STOP) {
evt.getLine().close();
}
}
});

我的假设是,剪辑创建了一个线程来将样本字节计量到行中,但线程在那之后会挂起,以防您想再次重新使用剪辑。我的第二个假设是,我的代码中的某个地方必须引用该剪辑,反之亦然,但无论如何,上面的代码片段用胶带粘住了问题。

希望这对某人有用。

关于java - 确定何时关闭 Java 中的声音播放线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837974/

26 4 0
Bài viết được đề xuất: java - Môi trường xây dựng và tích hợp Java/Java EE
Bài viết được đề xuất: sql - 如何在 MIN 或 MAX 中包含空值?
Bài viết được đề xuất: Eclipse 替换所有类中的文本?
Bài viết được đề xuất: java - 从 SQL 日期解析年份
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com