gpt4 book ai didi

java - 在 AudioInputStream 上设置超时

转载 作者:太空宇宙 更新时间:2023-11-04 14:44:27 24 4
gpt4 key购买 nike

我正在播放通过 AudioInputStream 接收的音频。音频数据存储在远程服务器上。

检索AudioInputStream通过AudioSystem.getAudioInputStream(new URL(path))工作完美,但我需要 timeout关于这个InputStream .

我想我也许能够创建一个 Socket连接到URL然后利用Socket超时,但是 AudioSystem.getAudioInputStream(InputStream) 要求输入流被标记为支持。这是我包裹 Socket 的时候InputStreamBufferedInputStream并收到以下错误消息:

java.io.EOFException
at java.io.DataInputStream.readInt(Unknown Source)
at com.sun.media.sound.WaveFileReader.getFMT(Unknown Source)
at com.sun.media.sound.WaveFileReader.getAudioInputStream(Unknown Source)
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)

工作代码:

audioInputStream = AudioSystem.getAudioInputStream(new URL(path));

导致EOFException的代码:

audioInputStream = AudioSystem.getAudioInputStream(new BufferedInputStream(socket.getInputStream()));

为什么是EOFException发生,是否可以向 AudioInputStream 添加超时?

最佳答案

通过将 Socket 替换为 URLConnection,我能够解决该问题。我假设这是因为 Socket 连接(至少以我设置的方式)打开了实际服务器 (server.com) 的输入流,而不是像我一样打开服务器上的文件有意为之。

关于java - 在 AudioInputStream 上设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24599002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com