首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AudioInputStream上设置超时

在AudioInputStream上设置超时
EN

Stack Overflow用户
提问于 2014-07-06 18:30:43
回答 1查看 268关注 0票数 1

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

通过AudioInputStream检索AudioSystem.getAudioInputStream(new URL(path))非常有效,但是在这个InputStream上需要一个timeout

我想我可能能够创建到URLURL连接,然后使用Socket超时,但是AudioSystem.getAudioInputStream( InputStream )需要支持InputStream。这是我将Socket InputStream包装在BufferedInputStream中并收到以下错误消息的时候:

代码语言:javascript
复制
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)

工作代码:

代码语言:javascript
复制
audioInputStream = AudioSystem.getAudioInputStream(new URL(path));

导致EOFException的代码

代码语言:javascript
复制
audioInputStream = AudioSystem.getAudioInputStream(new BufferedInputStream(socket.getInputStream()));

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-06 20:16:13

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24599002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档