在 Java 中可靠地播放短声音

2023-11-23

我正在努力编写一些基本上只播放短 .wav 文件的 Java 代码 - “短”是指不到一秒的时间。 (对于使用 Ubuntu 的用户,我使用的文件位于 /usr/share/sounds/generic.wav。)

问题是,我似乎不知道如何播放该样本reliably,也就是说,在我所有的尝试中,我可以让我的程序在 5 次左右播放声音 4 次,但永远不会 100%。

这是迄今为止作为独立程序效果最好的:

File soundFile = new File("/usr/share/sounds/generic.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(soundFile);
clip.open(inputStream);
clip.start(); 

(请注意,代码甚至没有调用clip.stop())但即使有了这个,如果我连续运行几次,迟早会出现一次没有播放任何声音的运行,但没有也有例外。

我尝试过的变体:

  1. 将音频文件加载到字节数组中并将其传递给 Clip.open

  2. 将 LineListener 附加到剪辑以等待 STOP 事件

加上一些随机尝试,但到目前为止我还没有设法创建有效的代码每次.

我还知道以下错误:https://bugs.java.com/bugdatabase/view_bug?bug_id=4434125但我使用的是 Java 1.6,报告声称 Java 1.5 或更高版本应该没问题。

有任何想法吗?是脉冲音频吗?


我很幸运地使用了 BASS 音频库。

它是原生编写的,因此它打破了一次写入、随处运行的原则,但它可以在 Windows、OS/X 和 Linux 上运行,这足以满足我的需求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中可靠地播放短声音 的相关文章

  • Spring Batch如何作为Reader读取多个表(查询)并将其写入平面文件写入

    在我的项目中 我读取了具有不同查询的多个表 并将这些结果集合并到平面文件中 我该如何实现这一目标 我的意思是 JdbcReader 直接采用 1 个选择查询 我如何自定义它 如果 JdbcCursorItemReader 不能满足您的需求
  • 使用SimpleMailMessage类发送邮件时如何使java字符串着色

    我正在使用 java 中的 SimpleMailMessage 类发送邮件 我将 spring 与 hibernate 结合使用 我想在发送邮件时将特定字符串设置为彩色 Code String emailBody Dear username
  • 定制法国号码格式

    我尝试为美国国家 地区使用自定义数字格式 到目前为止效果很好 Not something I want NumberFormat numberFormat0 NumberFormat getNumberInstance Locale US
  • 如何检测线程是否被IO阻塞?

    在Java中 线程可以有不同的状态 新的 可运行的 阻塞的 等待的 TIMED WAITING 的 终止的 然而 当线程被IO阻塞时 其状态为 RUNNABLE 如何判断是否被IO阻塞 NEW 线程已创建但尚未处理 可运行 线程正在占用CP
  • 仅使用 ServletContext 查找应用程序的 URL

    我正在使用 Spring MVC 编写一个 Java Web 应用程序 我有一个后台进程 它会遍历数据库并查找必须通过电子邮件发送给我的用户的通知 这些电子邮件需要包含应用程序的超链接 对于网络应用程序来说 这似乎是相当常见的模式 但我遇到
  • 用户“root”@“localhost”的访问被拒绝

    我正在尝试从数据库中获取记录 但我面临这个访问被拒绝的问题 我尝试了 Stack Overflow 上提到的其他解决方案 例如向用户授予权限 但没有任何效果 访问数据库的代码 public void service HttpServletR
  • Android - Java - 发送 facebook 聊天消息的意图(facebook 禁用 xmpp)

    Facebook 已弃用 xmpp API 有没有办法打开意图 或将数据传递到fb 以在Android设备上发送聊天消息 设备上安装的 Facebook 和 Messenger 应用 谢谢 您需要将 uri 传递给意图 这里10000572
  • 在 Android 中使用 lambdaj

    有人尝试过在android开发中使用lambdaj库吗 当我创建一个简单的小型java应用程序时 它对我来说工作得很好 但我无法在android应用程序中使用它 UPDATE 我正在添加 lambdaj lambdaj 2 3 2 with
  • 如何提高 Guice 启动时的性能

    好吧 我知道我的计算不客观等等 但无论如何 我讨厌在执行单元测试时等待这么多时间 我的 guice swing 应用程序需要大约 7 秒来初始化 这是一个简单的 IRC 客户端 在那一刻 没有打开连接 我什至还没有调用任何 java io
  • 使用 javax.mail 和 CentOS 的邮件服务器

    我有一个 Java 程序 安装在一台旧的 Ubuntu 机器上 并使用 javax mail 发送邮件 然而 那台机器宕机了 我现在在新的 CentOS 机器上运行相同的 Java 应用程序 但是 当我尝试使用 mail smtp host
  • java3d 中的面部着色

    使用java3d 如何不在每个顶点基础上着色 而是在每个面基础上着色 我尝试学习 java3d 但我生成的 Shape3d 看起来并不符合预期 我想用不同的颜色给不同的三角形着色 但我不知道该怎么做 纹理看起来有点大材小用 而且我根本没有掌
  • Java反序列化中避免重复对象

    我有两个列表 list1 和 list2 其中包含对某些对象的引用 其中某些列表条目可能指向同一对象 然后 由于各种原因 我将这些列表序列化为两个单独的文件 最后 当我反序列化列表时 我想确保我不会重新创建超出需要的对象 换句话说 List
  • JFreeChart MeterPlot

    我目前正在用java做Agent项目 在某些时候 我需要显示一个仪表 例如 电池电量 我的程序中有 5 个代理 每个代理都会创建自己的带有名称的仪表图 但不知何故他们没有更新数据集 或者他们正在更新数据集 只是它没有显示在仪表图上 任何想法
  • 在java中设置Process对象的安全性

    有人可以告诉我如何限制通过进程对象访问系统属性吗 如果我通过进程对象运行以下代码 我可以抛出安全异常吗 System getProperty user home 请告诉我如何为流程对象配置证券 在ProcessBuilder类文档中 环境方
  • 对于每个抛出异常的语句,try/catch 是否被视为反模式?

    我目前正在审查同事的 Java 代码 我看到很多情况下 每个可能抛出异常的语句都被封装在自己的 try catch 中 其中 catch 块都执行相同的操作 哪个操作与我的问题无关 对我来说 这似乎是一种代码味道 我记得读到过它是一种常见的
  • 如何将我的自定义相机应用程序设置为默认应用程序?

    如果我使用以下代码 Intent takePictureIntent new Intent MediaStore ACTION IMAGE CAPTURE startActivityForResult takePictureIntent 1
  • 当相应的 JTextfield 为空时,如何填充 JTable 中的所有项目

    我正在 Java 项目中设计一个高级搜索选项sqlite在 NetBeans 中 有5种不同JTextfields和 5 列 我想填充JTable具有相应的匹配标准 如果一个JTextfield为空 那么它应该选择该列的所有项目 我使用的查
  • java.lang.NoClassDefFoundError:com.google.ads.AdView

    我正在尝试将 admob 广告合并到我的应用程序中 到目前为止我已经添加了以下代码 在我的应用程序主要活动的 onCreate 方法中 adView new AdView this AdSize BANNER my code number
  • 1° 夏令时 Java 和 JS 表现出不同的行为

    假设巴西利亚 GMT 0300 夏令时于 21 10 2012 00 00 00 此时时钟应提前一小时 Java new Date 2012 1900 9 21 0 0 0 Sun Oct 21 01 00 00 BRST 2012 Chr
  • 文件构造函数说明

    我无法理解以下文件构造函数 public File String parent String child and public File File parent String child 参数有什么作用parent and child该文件

随机推荐

  • Python 夏令时

    如何检查夏令时是否生效 您可以使用time localtime并看看tm isdst返回值中的标志 gt gt gt import time gt gt gt time localtime 2010 5 21 21 48 51 4 141
  • 使用 pygame 旋转图像[重复]

    这个问题在这里已经有答案了 我是 pygame 新手 想要编写一些代码 每 10 秒将图像旋转 90 度 我的代码如下所示 import pygame import time from pygame locals import pygame
  • php中如何判断变量是否为null或未定义

    有没有singlePHP 中可以创建函数来判断变量是 NULL 还是未定义 我将把变量传递给函数 如果需要的话通过引用 但直到运行时我才知道变量的名称 isset and is null 不区分 NULL 和未定义 array key ex
  • 如何在 Linq 中添加两个列表,以便 linkedList[x] = listOne[x] + listTwo[x]?

    我想添加两个数字类型的列表 以便 添加列表 x 列表一 x 列表二 x 列表的输出需要是一个 Generic IEnumerable 我可以在将来的 linq 查询中使用它 虽然我能够使用下面的代码来做到这一点 但我忍不住觉得一定有更好的方
  • 如何理解在 PyTorch 中创建叶张量?

    来自 PyTorch文档 b torch rand 10 requires grad True cuda b is leaf False b was created by the operation that cast a cpu Tens
  • 错误:通用字符名称不完整 \U

    我正在尝试编写一个更改 txt 文件的 C 程序 但是 当我运行它时 我收到一个奇怪的错误 错误 6 20 C Dev Cpp Homework6 cpp 不完整的通用字符名称 U My code include
  • 在 pandas read_csv() 中引用参数

    我在用着pandas read csv 我发现quotechar并引用其中的参数 pandas read csv filepath or buffer sep quotechar quoting 0 这些参数的具体用途是什么 我检查了文档
  • 使用 SearchView 小部件时如何在 RecyclerView 中突出显示过滤后的文本

    如何在 RecyclerView 中突出显示搜索文本结果 我发现了一些关于 Spannable TextView 的帖子 但不确定在我的情况下在哪里实现 感谢您的关注和帮助 主要活动或第 1 章 public class Chapter1
  • 如何在运行时设置活动的父活动?

    我有任意数量的分层嵌套视图 活动 操作栏应显示向上导航按钮 以在任何视图中导航到更高级别 为此 谷歌文档说我必须在活动的 xml 定义中使用标签设置父活动 但是 我正在动态创建活动 并且子元素可以与其父元素具有相同的活动 那么如何在运行时将
  • 将正则表达式选项传递给 PowerShell [regex] 类型

    我使用下面的正则表达式代码捕获两个匹配的组 regex regex 0 9 1 20 b kb mb gb tb matches regex match minSize size int64 matches Groups 1 Value u
  • 在 Android 上使用 addJavascriptInterface() 传递 JavaScript 对象

    是否可以使用 addJavascriptInterface 将 JavaScript 对象从 JavaScript 传递到 Java 沿着这些思路 var javaScriptObject field1 string1 field2 str
  • 十六进制值 0x0B,是 XML 中的无效字符问题

    我遇到异常 十六进制值 0x0B 是无效字符 第 23 行 第 22 号位置 我已经尝试过解决方案Here 但它对我不起作用 由于我的项目是在3 5版本 我无法使用XmlConvert IsXmlChar method MSDN 怎么处理呢
  • 我可以使用一个 HTML5 应用程序控制两个浏览器窗口吗?

    我希望我的 HTML5 应用程序能够绘制到两个不同的屏幕上 这 我认为 意味着我需要有两个不同的浏览器窗口 每个屏幕上一个 这可能吗 看来我真的必须将相同的应用程序加载到两个窗口中 并以某种方式让窗口相互通信 我找不到如何实现此目的的示例
  • 使用 FTPS 将文件从 Android 传输到服务器 [重复]

    这个问题在这里已经有答案了 我正在使用Apache Commons FTP 库在我的 Android 应用程序中 我通过 FTPS 建立连接 虽然它可以完美地连接到服务器 但在传输文件时遇到问题 出于安全原因 订购应用程序的客户端要求在使用
  • 实体框架 PostgreSQL

    有人可以告诉我如何让 MS Entity Framework 与 PostgreSQL 一起使用吗 另外 实体框架如何与 Mono 一起工作 您能否推荐其他类似的可在 Mono 上运行的 ORM 工具 您对它们有何看法 实体框架还可以与 N
  • 为什么要使用 !!操作员

    我在一个例子中遇到了一些红宝石 def role role return self roles find by name role to s camelize end 你为什么会使用 难道不一样吗 return self roles fin
  • 使用故事板时如何子类化导航控制器?

    我使用 Xcode 菜单 编辑器 嵌入 导航控制器 在界面生成器中使用故事板 看来在 iOS 6 中你必须子类化 UINavigationController 以允许所有方向 NSUInteger supportedInterfaceOri
  • 列出 PostgreSQL 中带有索引的列

    我想获取 PostgreSQL 中索引所在的列 在 MySQL 中你可以使用SHOW INDEXES FOR table并看看Column name柱子 mysql gt show indexes from foos Table Non u
  • 对 SQLAlchemy 中每个查询的所有表应用全局过滤器

    我们正在尝试设置一个 SaaS 服务 支持共享数据库和架构中的多租户 我们计划在所有表上都有一个tenant id 列 我想做的是 开发人员不必编写任何额外的代码 我的查询就可以按此租户 ID 自动过滤所有涉及的表 在 SQL Alchem
  • 在 Java 中可靠地播放短声音

    我正在努力编写一些基本上只播放短 wav 文件的 Java 代码 短 是指不到一秒的时间 对于使用 Ubuntu 的用户 我使用的文件位于 usr share sounds generic wav 问题是 我似乎不知道如何播放该样本reli