关于java AudioInputStream播放短音频没声音的问题

参考java官网关于此问题的解释

播放短的音频时,在还没有播放时,程序就调用了stop事件,解决方法,为Clip添加一个监听器:

 1 import javax.sound.sampled.*;
 2
 3 public class EarlyStopDemo {
 4     private Clip clip;
 5
 6     public void go() throws Exception {
 7         AudioInputStream audioInputStream =
 8             AudioSystem.getAudioInputStream(
 9                 new java.io.File("testLong.wav"));
10         DataLine.Info info =
11                 new DataLine.Info(Clip.class, audioInputStream.getFormat());
12         clip = (Clip) AudioSystem.getLine(info);
13         clip.addLineListener(new LineListener() {
14                 public void update(LineEvent e) {
15                     if (e.getType() == LineEvent.Type.STOP) {
16                         synchronized(clip) {
17                             clip.notify();
18                         }
19                     }
20                 }
21             });
22         clip.open(audioInputStream);
23         clip.start();
24         synchronized (clip) {
25             clip.wait();
26         }
27         clip.close();
28     }
29
30     public static void main(String[] args) throws Exception {
31         EarlyStopDemo acd = new EarlyStopDemo();
32         for (int i = 0; i < 10 ; i++ ) {
33             acd.go();
34         }
35     }
36 }
时间: 2024-08-03 07:40:23

关于java AudioInputStream播放短音频没声音的问题的相关文章

01--音效 (短音频)

音频 分为两种: 1.音效 2.音乐 播放需要两个框架: AVFoundation.framework AudioToolbox.framework 1 #import "ViewController.h" 2 #import <AVFoundation/AVFoundation.h> 3 @interface ViewController () 4 @property (nonatomic,assign) SystemSoundID soundID; 5 6 @end 7

我所遇见的bug 系列1 win7在生成的程序里,播放音频时没声音

1 知识背景,需要具备基本的C/C++编程功能,能阅读c/++项目工程,了解注入的过程 ,了解基本的安全编程 2 需要的东东 注入的驱动及的程序,以及需要注入的dll 3 相关的工具 windbg win7x64虚拟机 pchunter64.exe procxp.exe 3 问题描述 在win7x64用我们自己的工具生成的程序,启动以后打开,视频,音频,播放时没声音 ,期望是有声音的 4 bug定位,bug 相关的代码主要是两大块,一个是驱动,一个是dll. 驱动在进程创建的时候把dll注入到进

java合并两段音频成一段 同时播放类似伴奏

/** * * @param partsPaths 要合成的音频路径数组 * @param unitedFilePath 输入合并结果数组 */ public void uniteWavFile(String[] partsPaths, String unitedFilePath) { byte byte1[] = getByte(partsPaths[0]); byte byte2[] = getByte(partsPaths[1]); byte[] out = new byte[byte1.

使用AudioTrack播放PCM音频数据(android)

众所周知,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的.MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的Binder机制.但是该类只能对完整的音频文件进行操作,而不能直接对纯PCM音频数据操作.假如我们通过解码得到

用 Qt 的 QAudioOutput 类播放 WAV 音频文件

用 Qt 的 QAudioOutput 类播放 WAV 音频文件 最近有一个项目,需要同时控制 4 个声卡播放不同的声音,声音文件很简单就是没有任何压缩的 wav 文件. 如果只是播放 wav 文件,那么 Qt 里简单的 QSound 类是最适合的.但是 QSound 有一个很大的缺陷就是无法选择用哪个声卡.一番研究之后,决定用 QAudioOutput 来播放 WAV 音频文件. 网上也能找到几篇相关的文章,比如: http://blog.csdn.net/qyee16/article/det

用 Qt 的 QAudioOutput 类播放 WAV 音频文件(使用了libsndfile外部库)

用 Qt 的 QAudioOutput 类播放 WAV 音频文件 最近有一个项目,需要同时控制 4 个声卡播放不同的声音,声音文件很简单就是没有任何压缩的 wav 文件. 如果只是播放 wav 文件,那么 Qt 里简单的 QSound 类是最适合的.但是 QSound 有一个很大的缺陷就是无法选择用哪个声卡.一番研究之后,决定用 QAudioOutput 来播放 WAV 音频文件. 网上也能找到几篇相关的文章,比如: http://blog.csdn.net/qyee16/article/det

工业串口触摸屏开发制作mp3播放器,单片机或PLC通过串口控制播放MP3音频方法

在工业控制系统中将音乐或语音MP3的美和工控结合在一起,给人以赏心悦目的感受.随着工业控制的发展,对工业控制的控制要求也越来越高,使得越来越多的控制部分不是指简单的现场控制,还需要增加音乐播放或语音提示,使得控制系统更加人性化. 这里介绍广州易显的工业串口触摸屏或者ARM工控机连接单片机或者PLC,使用工业串口触摸屏开发制作mp3的方法.跟电脑的播放器一样,具有播放,暂停,停止,控制播放进度,上一首,下一首等功能.可以在人机界面上控制播放MP3音乐或者语音提示.也可以使用单片机或PLC控制播放的

【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)

音视频学习入门技术文章连载: 技术开发故事会连载 [音视频连载-001]基础学习篇-SDL 介绍以及工程配置 [音视频连载-002]基础学习篇-SDL 创建窗口并显示颜色 [音视频连载-003]基础学习篇-SDL 消息循环和事件响应 [音视频连载-004]基础学习篇-SDL 加载图片并显示 [音视频连载-005]基础学习篇-SDL 加载 YUV 文件并显示 [音视频连载-006]基础学习篇-SDL 播放 YUV 视频文件]) 在前面的文章中已经能够利用 SDL 去播放 YUV 视频文件了,接下来

台式电脑前置面板的耳机插孔没声音

今天台式电脑的前置面板的耳机孔没声音,后置的耳机插孔有声音,但是插上后置的耳机孔,也插上前置的耳机孔,两个耳机都有声音,所以不是耳机孔的问题, 打开电脑右下角的小喇叭"Realtek高清晰音频管理器": 点击右上角的设置按钮: 选择AC97前面板: