java - Piped-/InputOutputStream 的替代方案

标签 java audio-player

我有一个音频播放器,它使用 PipedOutputStream 来缓冲数据的输入,并使用 PipedInput 来实际播放。有时播放器会暂停,但仍有数据需要缓冲。如果缓冲区现在已满,写入线程将无限期地阻塞。

是否有快速替代方案,支持写入超时或其他解决方案?

最佳答案

spf4j 包含 PipedInput/OuputStream 的替代实现。我也遇到过同样的问题并已解决。

问题的根本原因是pipedinputstream每次在read方法中都会检查writer(从pipiedoutputstream调用write的线程)的活跃度。 因此,写入器提前完成,然后读取将抛出异常并完成读取循环,并保留未读数据

关于java - Piped-/InputOutputStream 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620064/

相关文章:

java - 在android中显示当前音乐播放信息

flash - AS3 麦克风录音/保存工作,闪存 PCM 播放双倍速

iPhone 允许其他应用程序在录制音频/Shazam 时播放音频

java - 百分比符号 (%) 是什么意思?

java - 如何使用 Java DynamoDBMapper 类保存任意结构的文档

java - 不同名称、相同内容的文件的哈希函数

接受类及其接口(interface)的 Java 类型(逆变)

ios - 锁定iOS屏幕时可以运行的音频播放器

javascript - 使用 Web Audio API 播放时声音会在内存中扩展吗?

java - 程序 RedCross.java 应该在白色背景上显示一个红叉。它只是使十字的左上角