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

java一个音乐播放程序,同时显示歌词

java一个音乐播放程序,同时显示歌词 总的来说分为两部分:1.音乐播放 2.显示歌词(这里介绍一个好理解的算法,就不进行优化了) 一、音乐播放(这里我们在网上先下载一个wav文件来播放) 这里我们使用...首先,我们需要知道JDK原生只支持音频格式为*.wav *.au *.aiff 的音乐 如果我们不希望使用JDK原生支持,就需要自己使用jar包(下面代码我是使用JDK原生支持的播放器来写的) 注意一下我的两个资源...,一个是邓紫棋泡沫的歌曲.wav,一个是邓紫棋画的歌.lrc(因为实在没找到邓紫棋画的wav文件就先对付上了…) // JDK自带音乐播放无需导包 public static void MusicPlayer...; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException...; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import

1.9K10

Java一个简单的缓存操作

前言 使用缓存已经是开发中老生常谈的一件事了,常用专门处理缓存的工具比如Redis、MemCache等,但是有些时候可能需要一些简单的缓存处理,没必要用上这种专门的缓存工具,那么自己一个缓存最合适不过了...一、分析 首先分析一下缓存该如何设计,这里我以一种非常简单的方式来实现一个缓存,这也是我一直以来使用的设计方案。...为了明确功能,首先定义一个接口CacheInt,然后是缓存实现的工具CacheUtil。...缓存需要注意的问题: 缓存对象应该是唯一的,也就是单例的; 缓存的操作方法要同步,在多线程并发条件下防止出错; 缓存的容器应该具有较高的并发性能,ConcurrentHashMap是一个不错的选择。...三、并发测试 普通的实现测试这里就不展示了,肯定是没问题的,读者简单一些测试样例即可,这里主要展示一下并发测试,因为在实际情况中存在并发处理缓存情况,为了确保其正确性,所以并发测试是必须要做的,下面放出我的测试样例

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

java中IO文件工具

下面是一些根据常用java进行组装的对文件进行操作的,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作,里面的方法的简单易懂。...其中jodd中提供的JavaUtil中提供的方法足够我们使用,里面的方法的非常简练,例如append,read等方法,封装更好,更符合面向对象, 这里面我的一些方法可多都是模仿jodd,从里面进行抽取出来的...myFilePath = new java.io.File(filePath); myFilePath.delete(); // 删除空文件夹 } catch (Exception e) {...log.error(e); } } /** * 读取一个文件 * @param filePathAndName * @return * @throws IOException...} lnr.close(); br.close(); isr.close(); fis.close(); return returnValue; } /** * 读取一个文件

80230

java一个死锁

此时如果把sleep()换成wait()会出现 线程1锁o1 Exception in thread "Thread-0" 线程2锁o2 线程2锁o1 java.lang.IllegalMonitorStateException...查看API发现 java.lang.IllegalMonitorStateException抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程...Java中用到的线程调度算法是抢占式。一个线程用完CPU之后,操作系统会根据线程优先级、线程饥饿情况等数据算出一个总的优先级并分配下一个时间片给某个线程执行。...由于Java采用抢占式的线程调度算法,因此可能会出现某条线程常常获取到CPU控制权的情况,为了让某些优先级比较低的线程也能获取到CPU控制权,可以使用Thread.sleep(0)手动触发一次操作系统分配时间片的操作...Semaphore有一个构造函数,可以传入一个int型整数n,表示某段代码最多只有n个线程可以访问,如果超出了n,那么请等待,等到某个线程执行完毕这段代码块,下一个线程再进入。

2K20

『Demo』音乐Demo大全

好东西要乐于分享 好的Demo资源可遇而不可求,在这个小程序Demo资源越来越少的时局下,极乐蜀黍给大家雪中送炭,拿出自己的收藏多年的Demo资源,可不要太感动唷~ 音乐Demo大全 Demo 微信小程序...Demo:模仿—网易云音乐 微信小程序Demo:心音乐 (仿QQ音乐) 微信小程序Demo:仿 Apple Music的音乐小程序 微信小程序Demo:Running-master(动画、跑步、音乐、录音效果...微信小程序Demo:音乐之声(音乐播放小程序) 微信小程序demo:仿QQ音乐h5版小程序 微信小程序Demo:TealMusic音乐播放器 微信小程序demo:破车:音乐播放,循环,上首/下首,菜单...:下拉加载,音乐播放 微信小程序demo:音乐相伴 微信小程序精品demo:仿网易云音乐:歌单,FM,播放,评论 微信小程序demo:仿小睡眠;音乐播放与定时关闭 微信小程序demo:QQ音乐音乐搜索...:音乐在线 微信小程序demo:云图音乐:适用1028版本 demo制作小教程:一步一步qq音乐的微信小程序(亲测) 微信小程序Demo:5个板块,首页,视频,阅读,音乐

2.2K50

java 怎样卸载一个_Java 动态卸载

通过反射,我们可以动态的将加载到方法区中,但是卸载这个,却有着比较严苛的条件 1. 该类所有的实例都已经被GC,也就是JVM中不存在该Class的任何实例。 2....该类的java.lang.Class 对象没有在任何地方被引用,如不能在任何地方通过反射访问该类的方法. public static void main(String[] args) throws InterruptedException...{ // 等待两秒,让系统加载完所有的 Thread.sleep(2000); try { System.out.println(“Loading…”); // 利用反射,加载ComplexClass...(“com.company.wuchen.demo.ComplexClass”); // 将加载这个的URLClassLoader的引用置为null,以便让这个释放 loader = null; /...,实际运行的结果如下 这个先是被加载,然后被卸载了 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144678.html原文链接:https://javaforall.cn

1.7K20

java测试的创建方法_java编写一个

JUnit   JUnit是一个Java语言的单元测试框架。   ...  新建一个项目,起名叫JUnitTest,首先编写一个目标Calculator: package com.mengdd.junit; public class Calculator {...3.创建测试   这里需要注意以下几点: 1.使用JUnit的最佳实践:源代码和测试代码需要分开。   所以可以新建一个名叫test的source folder,用于存放测试源代码。...这样在发布程序的时候测试的程序就可以丢掉了。   但是这两个文件夹中的编译出的class文件都会在同一个bin文件夹中。...2.测试和目标源代码的应该位于同一个包下面,即它们的包名应该一样。   这样测试中就不必导入源代码所在的包,因为它们位于同一个包下面。

5.1K130

WPF MVVM 一个健壮的INotifyPropertyChanged基

PropertyChangedEventArgs(propertyName)); } } } 这样的写法很可能会造成硬编码错误 你是不是有点烦每次要写一个字段还要写一个属性还要加上...这么看着好简单呀,而且还能有效避免硬编码对你带来的问题。 一个x.就能出现你要的属性 ? 对!...来让我们一步一步的实现 我们先写一个公共方法 public class MyCommMetoh { //得到属性的名称 public static string...,下这那个是个扩展,如果你不太明白那就先回去看一下基础吧 是利用扩展根据lambda用上边我们的公共方法得到属性的名称,这也是为防止硬编码而做的工作 下面才是我们真正的基PropertyNotifyObject...,这个是我们存放数据值,修改和查询值的 看一下我是怎么的 public class PropertyNotifyObject : NotifyPropertyBase,IDisposable

1.8K50

Java|如何用Java定义一个

的定义 是一种引用数据类型。为对象的模板,简单的说就是分类。一个模板,它描述一对象的行为和状态。...在Java语言中,的成员变量的定义可以使用如下语法: class 名 {成员变量类型变量名称;………} 是用class关键字来定义的一种抽象数据类型,不但定义了抽象数据类型的组成(成员变量),...注释:1.java 会给成员变量一个初始值,但是不会给局部变量初始值,所以局部变量应赋初始值。2.局部变量与成员变量名称相同时,有限选取局部变量的值。...定义的思路 每个人的学习方法不同对于定义一个的思路也可能会有所不同。一般来说我会将定义一个分为两部分,即属性和方法(也可以说是成员变量和成员方法)。...详细的说就是: 1.先定义一个; 2.定义的属性(成员变量); 3.定义的方法; 4.定义的局部变量。

99730

代码时你可以听听这些音乐

代码时你可以听听这些音乐  不知道大家在代码有没有听音乐的习惯,一般都听什么类型的音乐呢?...我自己在这方面的经验不多,不过今天正好看到了一个网站专门精选推荐代码时应该听的音乐,叫“Music for Programming”,试听了一些感觉还不错,因此在这里推荐给各位。 ?   ...据网站介绍,它搜集整理了一系列不同风格的音乐,可以帮助程序员在代码时集中注意力,并提升工作效率。同时说,在做其他工作时听这些音乐也能起到效果。   ...目前,该网站提供了36张音乐专辑供选择,每张专辑时常大约1小时左右。选中一张专辑之后,网页的右侧就会变成该专辑中的音乐列表,并且提供了播放、暂停、快进30秒和快退30秒等功能。详见下图。 ?   ...网站称,所选取的这些音乐能够引起你大脑中部分区域恰当的兴趣,这些区域如果放任不管的话,就会让你在工作时走神。

78870

一个 Java 的加载

该系列文章,主要是为了深入学习Java完成的一条链,推荐阅读的整体顺序为:Java的内存模型(根源),一个java文件被执行的历程,一个Java的加载,Java的垃圾回收机制及算法,Linux(六)...:系统运维常用命令 和 Java程序运行状态的监控(实用,定位Java程序问题) 0x01:加载 我一直认为,不应该把的加载,单独当作一个模块去看,那样就是单纯地去看一个知识点,不利于建立Java...,例如:一个是否有父(我们知道Java中处理Object,所有的都应该有个父),字节码的验证主要是对数据流和控制流进行验证,确保程序语义是合法、合逻辑的,例如:在操作栈先放了一个Int型的数据,...整个验证过程,保证了Java语言的安全性,不会出现不可控的情况。(这里补充一下,这里说的验证、不可控,包括上面举的例子,并不是我们编程中的类似于a !...Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java

60110

用Python一个“听后即焚”的极简音乐播放器

获取网络歌曲 既然是音乐播放器,当然要能够播放音乐。我们创建的这个音乐播放器不能添加本地的音乐,那就只能播放网络的音乐了。...州的先生(https://zmister.com)在网上找了很久,终于找到了一个免费稳定的音乐接口。请求这个接口会随机返回一个音乐的播放地址。...这个方法,接受一个MP3音乐的网络地址参数,然后通过配置,对其进行播放。...我们之前创建了一个继承于QThread的网络歌曲获取GetMusicThread,通过创建另一个方法对其进行调用,并将完成信号(finished_signal)连接到init_player()方法即可实现网络歌曲的获取和播放...为了能够在播放完一首歌曲后自动获取和播放下一首歌曲,我们需要创建一个计时器,每隔一秒获取当前播放器的状态,判断其是否已经播放完了音乐,如果播放完了,就调用next_music()方法: self.timer

1.8K20
领券