首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过数组给声音赋值,并使用Jbutton播放?

通过数组给声音赋值,并使用JButton播放可以通过以下步骤实现:

  1. 创建一个数组,用于存储声音文件的路径或URL。例如,可以使用字符串数组来存储声音文件的路径。
  2. 使用Java的音频库(如javax.sound.sampled)加载声音文件。可以使用AudioSystem类的静态方法getAudioInputStream()来获取声音文件的输入流。
  3. 创建一个JButton对象,用于播放声音。可以使用JButton的addActionListener()方法为按钮添加一个ActionListener。
  4. 在ActionListener中,使用AudioSystem类的静态方法getClip()来获取音频剪辑对象。然后使用Clip对象的open()方法打开声音文件的输入流。
  5. 调用Clip对象的start()方法播放声音。

下面是一个示例代码,演示如何通过数组给声音赋值,并使用JButton播放:

代码语言:java
复制
import javax.sound.sampled.*;
import javax.swing.*;
import java.awt.event.*;

public class SoundPlayer {
    private static final String[] soundFiles = {
        "path/to/sound1.wav",
        "path/to/sound2.wav",
        // 添加更多声音文件路径
    };

    public static void main(String[] args) {
        JFrame frame = new JFrame("Sound Player");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JButton playButton = new JButton("Play");
        playButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    // 从数组中随机选择一个声音文件
                    String soundFile = soundFiles[(int) (Math.random() * soundFiles.length)];

                    // 加载声音文件
                    AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(SoundPlayer.class.getResource(soundFile));

                    // 获取音频剪辑对象
                    Clip clip = AudioSystem.getClip();
                    clip.open(audioInputStream);

                    // 播放声音
                    clip.start();
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        });

        frame.getContentPane().add(playButton);
        frame.pack();
        frame.setVisible(true);
    }
}

在上面的示例代码中,我们创建了一个包含多个声音文件路径的字符串数组soundFiles。在按钮的ActionListener中,我们随机选择一个声音文件,加载它并使用Clip对象播放。你可以根据自己的需求修改soundFiles数组,添加更多声音文件的路径。

请注意,上述示例代码仅演示了如何通过数组给声音赋值,并使用JButton播放。在实际应用中,你可能需要添加更多的功能,例如停止播放、循环播放等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途

api,控制整个项目的声音 希望分组简单,且可以通过一个api,设置不同组的声音 希望方便的拓展新的组或者最底层的音效,且之前写的控制代码会对新的拓展有效 如何用AudioMixer,分级控制项目音效...后面我们会通过 Resources 加载播放。...3️⃣ 创建声音播放源AudioSource,赋值MusicMixer 即在项目中,这些基础部分声音创建AudioSource, 后面就在这些 AudioSource上,播放对应类别的声音。...Audio Mixer 的使用思路: 原先我们播放音频,都是直接 AudioSource.Play 里面的音乐就可以了,camera上面的 Audiolistener 会监听项目中的声音播放出来。...4️⃣ 配置播放音乐面板 创建UI界面 效果如下图所示: 主音量滑动条控制全局音量 对话音量控制“对话”的音量 音乐音量控制其余音效音量 编写播放音乐的代码 下面代码用于赋值左侧按钮,用于点击播放音效

16210
  • Unity TimeLine丨B.赛车过场动画制作及视频展示

    TimeLine 3、添加BGM到TimeLine,将TimeLine GameObject添加到TimeLine的音频上,选择Create AudioSource On TimeLineTimeLine...GameObject添加AudioSource组件,将音频赋值AudioSource组件里的AudioSource-AudioClip 或者直接Add Component,再拖到视频TimeLine...上,赋值音频AudioSource 音频是通过AudioSource组件控制播放的,勾选组件的Play On Awake开始便可运行。...它的作用之一是当Mute锁定Track时,若Play On Awake未勾选,则不播放音乐,否则播放音乐 4、添加EngineStart引擎声音 在TimeLine GameObject添加第二个...AudioSource组件,将EngineStart声音赋值给它,并将声音拖动到TimeLine进行相关设置 5、添加相机,完成如下效果,参考链接 6、添加渐隐渐现效果 a、新建Image UI,锚点ALT

    13110

    Audio Unit播放PCM文件

    前言 相关文章: 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioToolbox播放AAC HLS...点播实现(H.264和AAC码流) HLS推流的实现(iOS和OS X系统) iOS在线音频流播放 最近对Audio Unit感兴趣,用几周的业余时间研究,顺利习得Audio Unit播放、录制声音...这是Audio Unit系列的第一篇,用Audio Unit播放PCM文件。 Audio Unit的知识点较多,围绕demo介绍如何使用Audio Unit。...AudioUnitInitialize初始化AudioUnit; 6、调用AudioOutputUnitStart开始,AudioUnit会调用之前设置的PlayCallback,在回调函数中把音频数据赋值...本文主要介绍AudioUnit如何播放声音,后续的两篇文章介绍AudioUnit的录音场景还有配合AudioConvert播放各种格式的文件。

    3K60

    Java中的屏幕共享

    了解如何使用 Java、Node.js 和 JxBrowser 构建屏幕共享应用程序。远程屏幕共享用于各种应用程序和服务,从网络会议到远程访问应用程序。...receiver', (req, res) => { res.sendFile(rootPath + 'public/receiver.html');});复制代码每个 HTML 文件都包含连接到服务器通过...为了显示它,我们在接收器端使用内置的 HTML5 视频播放器。打开两个浏览器窗口查看是否正常。该项目的源代码可在GitHub 上获得。...需要初始化一个空的Gradle 项目使用JxBrowser Gradle Plug-in添加JxBrowser依赖项。...结论在本文中,展示了如何在一个 Java 应用程序中共享屏幕使用 JxBrowser 在另一个应用程序中显示它。 我创建了一个可以共享屏幕的简单 JavaScript 应用程序。

    1.9K20

    为了防止狗上沙发,写了一个浏览器实时识别目标功能

    / 加载预训练的 SSD MobileNet V2 模型 const model = await cocoSsd.load(); dogDetector = model; // 将加载好的模型赋值...MobileNet V2 模型 const model = await cocoSsd.load(); dogDetector = model; // 将加载好的模型赋值...但是,家里夫人直接做了一个围栏晚上狗圈起来了 实现总结 该方案通过以下步骤实现了一个基于网页的实时物体检测系统,专门用于识别画面中的狗播放特定音频以驱赶它离开沙发。...加载物体检测模型: 使用 TensorFlow.js 和预训练的 COCO-SSD MobileNet V2 模型进行对象检测,加载模型后赋值 dogDetector 变量。...部署环境准备: 使用旧 Android 手机安装 Termux ,创建本地 HTTP 服务器运行项目代码。上传项目文件至 Termux 目录下通过访问 localhost:8000 启动应用。

    9610

    Python 还能播放音频,而且花样多多?

    阅读本文大概需要3.3分钟 播放音频文件 下面,您将看到如何使用所选的Python库来播放音频文件。其中一些库允 许您播放一系列音频格式,包括MP3和NumPy数组。...使用此模块,可以使用一行代码播放声音文件: from playsound import playsound playsound('myfile.wav') playsound声明它已经在WAV和MP3...下面,将看到如何生成与440 Hz音调相对应的NumPy数组使用simpleaudio.play_buffer(): import numpy as np import simpleaudio as...,将学习如何使用python-sounddevice跨平台音频回放模块。...接下来,我们将学习如何使用pydub播放声音。它允许播放范围广泛的音频文件,并且提供了比使用音频更多的选项。

    3.6K10

    Java图形用户界面设计的布局管理器

    创建GridBagLaout布局管理器对象,容器设置该布局管理器对象; 创建GridBagConstraints对象,设置该对象的控制属性: gridx: 用于指定组件在网格中所处的横向索引...gridBagLayout.setConstraints(c,gridBagConstraints); container.add(c); } } 这段代码展示了如何使用...然后,创建了一个GridBagConstraints对象,设置其中的一些属性。 接下来,创建了一个容量为10的Button数组通过循环初始化了每一个按钮。...通过调用addComponent方法,将前三个按钮添加到Frame中,设置了一些约束条件。然后,将第四个按钮添加到Frame中,设置了约束条件。...BoxLayout演示,我们会发现,被它管理的容器中的组件之间是没有间隔的,不是特别的美观,但之前学习的几种布局,组件之间都会有一些间距,那使用BoxLayout如何组件设置间距呢?

    15310

    Android音频系统

    AudioTrack如何传输数据Thread? AudioTrack如何播放、暂停、关闭? ?.../system/etc/audio_policy.conf来描述 app要播放声音, 要指定声音类型: stream type有那么多的类型, 来来来, 先看它属于哪一类(策略): strategy 根据...根据device确定output, 进而知道对应的playbackthread, 把声音数据传给这个thread 一个stream如何最终选择到一个device,这些stream如何互相影响(一个高优先级的声音会使得其他声音静音...假设默认情况下播放音乐是通过听筒喇叭输出的,那么当用户插入耳机时,这个策略就会改变——从耳机输出,而不再是听筒;又比如在机器插着耳机时,播放音乐不应该从喇叭输出,但是当有来电铃声时,就需要同时从喇叭和耳机输出音频...APPAudioTrack提供音频数据有2种方式: 一次性提供(MODE_STATIC)、边播放边提供(MODE_STREAM) 问: 音频数据存在buffer中, 这个buffer由谁提供?

    3.5K20

    Java图形用户界面之Applet设计

    在Java Applet中,可以实现图形绘制、字体和颜色控制、动画和声音播放、人机交互及网络交流等功能。...声音播放 目前 Java 中支持 AU、AIFF、WAV、MIDI、RFM 等多种格式的音频文件格式,可以利用 Applet 类和 AudioClip 接口来播放声音。...而音频文件的播放和停止可能进行很多次,可以放在 start()和 stop()方法中,或者通过相应按钮的事件处理方式进行控制。 代码示例 可以使用Java Applet来实现音频文件的播放。...因此,如果您希望在现代浏览器中使用音频播放功能,可以考虑使用HTML5的元素或使用JavaScript库(如Howler.js)来完成音频播放操作。...代码示例 下面是一个使用Java编写的Applet,可以通过HTML文档传入两个整数,计算它们的最大公约数。

    8510

    如何在Swing组件中使用HTML

    这是在按钮的文本中使用HTML的示例: button = new JButton("Two lines"); 这是结果按钮。 ?...示例:HtmlDemo 名为HtmlDemo的应用程序允许您通过在标签上设置文本来使用HTML格式播放。您可以在HtmlDemo.java中找到此程序的完整代码。这是HtmlDemo示例的图片。...单击启动按钮,以使用Java™Web Start(下载JDK 7或更高版本)运行ButtonHtmlDemo。或者,要自己编译运行示例,请查阅示例索引。...左右按钮具有多行和文本样式,使用HTML来实现。另一方面,中间按钮仅使用一行,字体和颜色,因此不需要HTML。...本节讨论了如何在普通的非文本组件中使用HTML。有关主要目的是格式化文本的组件的信息,请参阅使用文本组件。 如果您使用JavaFX编程,请参见HTML编辑器。

    2.5K20

    vue新春游戏-年兽大作战,欢欢喜喜过大年(可在线体验)

    至于声音控制,那肯定是必须的,一是因为防止突然播放音乐对用户造成影响,二是浏览器也有限制,禁止声音自动播放。...,如果我们定义数据的时候直接把控制声音的变量赋值show,那么后续声音变化的时候,show是不会动态更新的,这里我们我们赋值show一个函数,就可以达到冬天更新的目的了。...游戏中的声音主要有两个类型,一种是长时间播放,需要控制播放暂停的,比如背景音乐,另一种是即时性的,比如菜单滑动声、子弹撞击声等,所以背景音乐的实例我们需要存储下来,而即时音效随用随建就行,我这里偷了个懒...,如果打开的话在进行播放,注意,这里不能通过给单一的audio对象改变地址的方式播放不同的音效,因为如果在当前声音正在播放时候,修改音效地址会报错。...9, // 回答倒计时, showTime: 6, // 展示倒计时 result: null, // 用户回答的答案 } 这么一看就好办多了,我们只需要再点击选项的时候,把选项的值赋值

    63910

    Java交互界面实现计算器开发设计【附函数源码】

    使用Java和C#开发交互界面,最大的区别就是: C#的交互界面的实现是可以在设计模块中直接添加控件设置其属性,同时还会生成与控件所绑定的控件函数的, 而Java则不同,Java的窗体和控件都需要使用代码来设置的...操作符点击后数据转换赋值函数 当我们点击了运算操作符之后,说明我们的第一个数据已经输入完成了,这个时候,我们将要输入的是第二个数据,这时候我们就需要进行数据的赋值转换,因为我们最开始的时候是使用INumsecand...你可能会问,为什么不直接使用INumfirst接收第一个数据,使用INumsecand接收第二个数据,原因是因为,当你点击数字控件时,我们无法判断你输入的数据是第一个数据还是第二个数据,我们只能将你输入的数据统一的赋值某一个变量...,在这里这个变量就是INumsecand,只有我们判断到当点击了运算操作符之后,说明我们的上一个数据已经输入完成了,这时候才需要我们将INumsecand赋值INumfirst,来说明我们得到了第一个数据...该函数的实现代码如下: //定义操作符点击后数据转换赋值的函数 public static void Operation_Cliked() { INumFirst = INumSecond; //将第一次键入的值赋第一个数

    1.4K10

    Java课程设计之 学生成绩管理系统「建议收藏」

    a,设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get(i); /...aa,设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get(i);...aa,设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get...aa,设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get...aa,设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get(i)

    4.5K43

    如果用java swing编写一个五子棋(人人对战)

    上一次写了一个姓名随机抽取器,点击查看,参加了原力计划,被小编推荐到了首页,也是第一次在首页看到自己写的东西,当时看到的那一刻实实在在很开心,其实我们好多人学习东西,恰恰就需要那么一点点的鼓励和被重视,没错,我就是这类人,通过这次被官方推荐...我也找到了游戏的背景,棋子落下时也会有音乐,由于录制的是动态图,所以没办法在这里各位呈现音乐效果,下面有游戏效果和流程图,由于代码可能比较繁琐,我特意准备了流程图帮助各位理解,至于代码,我会尽可能注释清楚...JButton Start_end_Button = new JButton(); //开始游戏按钮 private static JButton Pause_Butten = new JButton...volatile int time =0; //设置倒计时 private static volatile int ss =time % 60; private static int sum = 0;//记录数组使用情况...BufferedInputStream(fileInputStream); player = new Player(bufferedInputStream); player.play();//加载音乐播放

    1.2K51

    Java 期末复习 (已完结)

    value): 二分搜索算法在指定的数组中搜索指定的值,返回该值所在索引位置;若查询不到,则返回-1 3 Arrays.sort(array); 升序排列数组 4 fill(int[] a, int...value)方法:指定数组的每个元素分配指定的值 5 toString(int[] a)方法:返回一个指定数组的字符串表现形式 输出结果为 [1, 2, 3, 4] 在数组这块怎能少了 算法排序...2 如何定义类 ? ? 注意 1 public 可以修饰类 但是一旦修饰了 那类名应该与文件名相同 (也可以不写) 2 类名 首字母一定要 大写 3 讲一下构造方法*** ?...那么如何停止线程呢?...,将指针从中去掉 C++采用的是“伪数组”,需要时刻关注数组越界问 7 JAVA引入了真正的数组,将指针从中去掉 C++采用的是“伪数组”,需要时刻关注数组越界问题 8 C++字符串string

    95730
    领券