`
LiYunpeng
  • 浏览: 942810 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

在Windows上使用AudioInputStream导致文件被占用无法delete的解决办法

    博客分类:
  • Java
阅读更多
最近在研究通过HTML5录制音频直接上传到后台保存文件

使用到了AudioInputStream,现在是使用binary 二进制的blob来上传然后反复的操作生成的音频文件,但是在Windows下,文件写了一次之后就不能再往里面操作了,进程被占用,导致无法操作原有文件

解决办法就是
AudioSysten.getAudioInputStream();
方法里面不直接使用File对象

而是FileInputStream读取File对象
再通过BufferedInputStream来加载FileInputStream
然后AudioSysten.getAudioInputStream();来加载这个BufferedInputStream,这样的话,就不会有此类问题了

这里注意,页不能直接使用FileInputStream,否则会报
java.io.IOException: mark/reset not supported的错误

因为FileInputStream没有缓冲
分享到:
评论

相关推荐

    使用audio标签播放mp3,amr,wav文件

    本文将详细讲解如何使用`<audio>`标签来播放不同格式的音频文件,包括mp3, amrnb和wav,并讨论可能遇到的兼容性问题以及解决方案。 一、`<audio>`标签的基本使用 `<audio>`标签是HTML5中的一个核心元素,它允许...

    samp15_4AudioInput.zip

    通过解压这个文件,我们可以得到名为"samp15_4AudioInput"的项目源代码,这将帮助我们了解整个实现过程。 首先,我们需要引入Qt的多媒体模块。在Qt中,这是通过`#include <QMultimedia>`完成的。这个模块包含了处理...

    java播放pcm文件

    要播放PCM文件,我们需要使用`AudioSystem`类和`AudioInputStream`接口。 1. 加载音频数据 首先,我们需要创建一个`AudioInputStream`对象,从PCM文件中读取音频数据。可以使用`AudioSystem.getAudioInputStream()`...

    JAVA对音频文件处理程序

    2. 使用`AudioSystem.getAudioInputStream()`方法创建一个`AudioInputStream`对象,该对象将文件与音频数据流关联起来。 降分贝处理是音频处理中的一个重要环节。在音频领域,"分贝"(dB)是表示音量相对大小的单位...

    android开发2个按钮实现录音、暂停功能

    本文将深入探讨如何在Android平台上利用API实现这两个特性,并且讲解如何将多个录音片段合并成一个完整的文件。 首先,我们要了解Android系统中的音频录制主要依赖于`AudioRecord`类。`AudioRecord`是Android提供的...

    windows audio音频服务不可用

    5. **系统还原或重置**:如果以上方法都无法解决问题,可以考虑执行系统还原到问题出现之前的状态,或者使用“重置此PC”功能恢复到初始状态,但请注意,这可能会导致数据丢失。 6. **检查病毒和恶意软件**:有时候...

    java audio play

    AudioSystem的getAudioInputStream()方法接受一个File对象或URL,然后返回一个AudioInputStream对象,这个对象代表了音频数据的流。 2. 获取音频信息:AudioInputStream对象提供了获取音频格式(如采样率、位深度)...

    多格式语音文件合成一个文件

    1. **读取音频数据**:使用AudioInputStream读取每个文件的音频数据,确保它们的采样率、位深度和声道数一致,如果不一致,可能需要进行重采样或格式转换。 2. **创建目标输出流**:根据最终需要的格式,创建一个新...

    java — Wave音频文件的属性获取及文件合成

    在Java中,可以创建一个`AudioInputStream`实例,然后逐帧读取每个输入流并写入到新的WAV文件中。以下是一个基本的文件合成示例: ```java import javax.sound.sampled.*; public class WAVCombiner { public ...

    java源码 java获取音频文件 播放时长AudioDemo 2018127

    音频文件的帧率(frames per second)和每帧的样本数量可以在`AudioFormat`对象中找到,`AudioInputStream`提供了获取这些信息的方法。例如,`getFormat().getFrameRate()`返回帧率,`getFormat().getFrameSize()`...

    Windows Audio服务每次启动自动关闭该怎么办?.docx

    在某些情况下,Windows Audio服务可能会自动关闭,导致音频设备无法工作。这种情况可能是由于音频服务被关闭或音频服务注册表项被删除所致。 解决方法 ---------- ### 1.重新注册音频动态连接库 首先,重新注册...

    .au格式Java音频下载

    7. **性能优化**:由于未压缩的.au文件可能占用大量内存,可以考虑使用`AudioInputStream`的子类`AudioInputStream`进行转换,将其转化为更节省空间的格式,如WAV或MP3。 8. **错误处理**:在处理音频文件时,应...

    解决ios audio无法播放问题

    ios中audio不能直接通过audio.play()播放,需要用户在click事件或者touch事件中执行audio.play()才能播放。 ajax回调中audio.play()音乐不能正常播放。 用户点击按钮,等服务器返回数据后再播放相应的成功或失败的...

    关于声卡在windows 7下工作不正常的解决方法

    标题中的“关于声卡在Windows 7下工作不正常的解决方法”表明了本文将探讨的是在Windows 7操作系统中遇到声音问题时,如何诊断并修复声卡故障的问题。Windows 7是一个广泛使用的操作系统,尽管现在已经有一些年份,...

    给音频文件加头

    1. **读取原始音频文件**:使用`javax.sound.sampled.AudioSystem`类的`getAudioInputStream()`方法读取音频文件,获取`AudioInputStream`对象。 2. **分析音频文件信息**:通过`AudioFormat`类获取音频文件的格式...

    java 播放音频

    然后,你需要确定音频格式是否与系统兼容,如果不兼容,可能需要使用AudioFormat和AudioInputStream的子类(如AIFFAudioInputStream或WAVAudioInputStream)进行转换。 创建一个Clip实例后,你可以用AudioSystem的...

    Java实现MP3播放器.zip

    在Java中播放MP3文件,我们需要使用AudioSystem类和AudioInputStream接口。AudioSystem类是Java音频API的主要入口点,它提供了多种音频服务,包括加载、播放和控制音频流。AudioInputStream则代表了音频数据的输入流...

    java mp3源码

    播放完成后,记得释放占用的资源,如关闭AudioInputStream和释放AudioSystem的资源。否则,长时间运行可能会导致内存泄漏。 8. **优化与性能** 对于性能优化,可以考虑使用缓冲区来提高数据读取速度,或者使用多...

    java播放声音的实例

    例如,我们可以用`AudioSystem.getAudioInputStream()`方法来打开一个音频文件,并将其转换为`AudioInputStream`对象。 2. **AudioInputStream**: 它是从音频文件或音频源获取音频数据的输入流。我们可以使用这个类...

    au格式声音,Java sun公司开发人员必备

    6. **处理音频数据**:如果你需要对音频数据进行处理,如改变音量或混音,你可以使用`AudioInputStream`的子类`AudioSystem`提供的`getTargetAudioStream`方法转换为其他格式,然后进行操作。 7. **资源管理**:...

Global site tag (gtag.js) - Google Analytics