JavaFX中AudioClip音频

这篇具有很好参考价值的文章主要介绍了JavaFX中AudioClip音频。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

AudioClip类的前面有final修饰,所以这个类不能被继承。这个类的主要作用是播放一些较短的音频。比如设计游戏,用于开火,碰撞等短音频的播放。

比较

AudioClip可以以最小延迟播放音频片段。剪辑的加载方式与媒体对象类似,但也有一些不同,例如,媒体无法自行播放。AudioClip可以立即播放。播放行为是“触发并忘记”:一旦调用其中一种播放方法,唯一可操作的控件就是stop()。AudioClip也可以同时播放多次。要使用媒体完成相同的任务,必须为并行播放的每个声音创建一个新的MediaPlayer对象。但是,媒体对象更适合长时间播放声音。这主要是因为AudioClip将整个声音的原始未压缩音频数据存储在内存中,对于较长的音频片段来说,这些数据可能非常大。MediaPlayer在内存中只有足够的预压缩音频数据,以便在短时间内播放,因此对于长片段,尤其是压缩片段,它的内存效率要高得多。两者各有优点,选择哪一种主要是看需要。

方法

首先是构造方法,跟其他类一样,不过需要在括号内输入音频。

AudioClip audioClip = new AudioClip("");

播放音频的方法有三个,是重载的三个。play():以默认的设置播放音频。play(double volume):以默认方式播放音频,但手动设置音量。
play(double volume, double balance, double rate, double pan, int priority):手动设置括号内的选项播放音频。

audioClip.play();

设置音量的方法是setVolume(double value),获得音量管大小的方法是getVolume()

audioClip.setVolume(2.0);

停止播放音频的方法是stop(),在没有设置其他播放模式时,一般是播放完就自动停止。

audioClip.stop();

还有控制播放速度的方法setRate(double rate),使用这个方法,有利于,音频与动画的适配,看起来更和谐。

audioClip.setRate(2);

setPriority(int priority),setPan(double pan),setCycleCount(int count),setBalance(double balance)。这四个个方法分别是用于设置播放优先级,平移,循环次数和左右音量。

        audioClip.setPan(2);
        audioClip.setPriority(1);
        audioClip.setCycleCount(2);
        audioClip.setBalance(2);

注意

一、关于设置时的取值范围。
1.相对音量:播放音频时的相对音量。有效范围为0.0(相当于静音)到1.0。音量在内部被限制在这个范围,所以这个范围之外的值不会产生其他影响。音量由衰减控制,低于1.0的音量值将相应降低声级。
2.相对左右音量:音频的相对左右音量级别。有效范围为-1.0到1.0,其中-1.0为左声道提供完整音量,同时静音右声道,0.0为两个声道提供完整音量,1.0为右声道提供完整音量,并静音左声道。超出此范围的值将在内部限制。
3.相对速率:播放音频的相对速率。有效范围为0.125(1/8速度)至8.0(8倍速度);超出此范围的值将在内部钳制。音频的正常播放速率为1.0;任何其他速率都会相应地影响音高和持续时间。
4.相对“中心”:音频的相对“中心”。平移值为0.0时,正常播放片段,其中平移值为-1.0时,片段将完全移动到左侧通道,平移值为1.0时,片段将完全移动到右侧通道。与balance不同,此设置混合了两个通道,因此两个通道都不会丢失数据。在单声道剪辑上设置“平移”与设置“平衡”具有相同的效果,但CPU开销要高得多,因此不建议单声道剪辑使用此选项。
5.循环次数:设置成几次就是几次,但设置为不确定会导致一直播放,直到调用stop()方法。
二、音频获取
我是用idea写java,所以会在项目里设置资源文件夹,获取资源时,选择相对路径,便于打包和制作安装包。文章来源地址https://www.toymoban.com/news/detail-421063.html

到了这里,关于JavaFX中AudioClip音频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES实现“小于XX时间”排前面(或后面)“大于XX时间”排后面(或前面)排序

    一位学生问我一个问题,实现es查询:对于查询的结果要分成两类【过期和没过期,按照过期时间判断】。没过期的排在前面,过期的排在后面。最后,不管是过期的还是没过期的,在组内都再按照标定时间字段进行倒排序。 是否过期通过 过期时间字段 进行判断。 对于此类

    2024年02月15日
    浏览(47)
  • 【JavaFx】1.JavaFx实现闹钟小程序

    专栏目录 1.JavaFx实现闹钟小程序 2.银行账户管理员 3.大数字 4.购物车 5.文本编辑器 6.乌龟图 JavaFx菜鸟教程 JavaFx哔哩哔哩教程 JavaFx是什么 JavaFx是java实现图形界面的一种方式,其他还有java的awt、swing,但是逐渐被淘汰。 awt -- swing -- JavaFx javafx可以实现逻辑和样式的分离,可以

    2024年02月20日
    浏览(56)
  • 第00章_写在前面

    讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.comhttp://www.atguigu.com/) MySQL数据库基础篇分为5个篇章: 1. 数据库概述与MySQL安装篇 第01章:数据库概述 第02章:MySQL环境搭建 2. SQL之SELECT使用篇 第03章:基本的SELECT语句 第04章:运算符 第05章:排序与分页 第0

    2024年02月07日
    浏览(43)
  • 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m 个数

    这道题实现起来不是很困难,但是用最优的方法去实现,还是有一定的难度,尤其是对于初学者,很难想到最优的方法。每一种方法的时间复杂度和空间复杂度都有所差别,这篇文章主要是在该问题的基础上,分析各种方法的优劣,用空间复杂度,时间复杂度来衡量一个算法

    2024年01月20日
    浏览(38)
  • 安装部署JavaFX和IDEA添加JavaFX的详细步骤

    JavaFX是Java平台的一个图形用户界面(GUI)工具包,用于创建丰富、交互式和可视化的应用程序。 JavaFX提供了一整套各种UI组件、图形绘制、动画效果、布局管理和事件处理等功能,使开发人员能够轻松地构建具有吸引力和易用性的用户界面。 JavaFX具有以下特点: 跨平台性:

    2024年02月11日
    浏览(36)
  • JavaFX环境配置(配jdk版本和javafx版本对应)

    因为jdk11之后就没有内置javafx了所以要自行下载配置到lib包 下载地址:JavaFX - Gluon (gluonhq.com)(要记住下载的路径)     方法1.在idea中新建JavaFx项目 创建好后发现爆红,是因为没在lib中导入javafx的jar包   找到对应路径选中其中的这几项然后导入即可,如果还有爆红则可能还需

    2024年02月04日
    浏览(41)
  • final、finally、finalize 的区别

    三者的区别 性质、作用 final为; finalize()为方法; finally为区块标志,用于try语句中; final:Java 修饰符,声明 类不可继承,方法不可重写,属性不可变 注意 由 abstract 定义的抽象类含必须由继承自它的子类重载实现的抽象方法,因此 无法同时用final和abstract来修饰同

    2024年02月03日
    浏览(82)
  • Unity实现模型显示在UI前面

    1.先创建一个Cube充当人物模型 2.创建一个血条,这边血条用Scrollbar实现,用Scrollbar实现血条的话,需要将里面的参数都清空 血条颜色也通过这边设置   然后再把这个size拉满就可以实现血条效果了,如果要实现掉血效果,直接通过代码调用到这个size进行减少便可以了   3.回归

    2024年02月05日
    浏览(44)
  • 每日一道面试题之final、finally、finalize 有什么区别?

    final是Java中的 ,用于 修饰变量、方法或类 ,被final修饰的类表示 该类不能被继承 ,被final修饰的变量表示 该变量不能赋新的值 ,被final修饰的方法表示 该方法不能被重写 . finally是Java中的 ,用于 定义在try-catch语句块中的一个代码块 ,无论是否发生异常都会执

    2024年02月08日
    浏览(47)
  • pyqt怎么让窗口显示在最前面

    可以使用 PyQt 的 setWindowFlag() 函数来设置窗口的 \\\"AlwaysOnTop\\\" 标志。这样就可以让窗口始终显示在最前面了。 下面是一个例子: 注意,这个方法并不是在所有系统上都有效,有些系统可能会忽略这个标志。如果想要实现在所有系统上都能让窗口显示在最前面,可以使用 PyQt 的

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包