热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

简单实现java音乐播放器

这篇文章主要为大家详细介绍了java实现音乐播放器的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

学习过java语言的你,或多或少,在某天突发奇想,想着用swing做一个音乐播放器。但是,发现很难找到,相关的java代码,或者你下载的代码有问题,或者你代码里面引入的类包找不到。为了解决自如此类的问题。在这儿,有如下的代码可以供大家参考。

package TheMusic; 
import java.io.*; 
 
import javax.sound.sampled.*; 
 
public class Music { 
 
 
 public static void main(String[] args) { 
 // TODO Auto-generated method stub 
    //修改你的音乐文件路径就OK了 
 AePlayWave apw=new AePlayWave("突然好想你.wav"); 
 apw.start(); 
 } 
 
} 

在程序中实例化这个类,启动线程,实例化的时候参照Test修改路径就OK播放声音的类

public class AePlayWave extends Thread { 
 
 private String filename; 
 public AePlayWave(String wavfile) { 
 filename = wavfile; 
 
 } 
 
 public void run() { 
 
 File soundFile = new File(filename); 
 
 AudioInputStream audioInputStream = null; 
 try { 
 audioInputStream = AudioSystem.getAudioInputStream(soundFile); 
 } catch (Exception e1) { 
 e1.printStackTrace(); 
 return; 
 } 
 
 AudioFormat format = audioInputStream.getFormat(); 
 SourceDataLine auline = null; 
 DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); 
 
 try { 
 auline = (SourceDataLine) AudioSystem.getLine(info); 
 auline.open(format); 
 } catch (Exception e) { 
 e.printStackTrace(); 
 return; 
 } 
 
 auline.start(); 
 int nBytesRead = 0; 
 byte[] abData = new byte[512]; 
 
 try { 
 while (nBytesRead != -1) { 
 nBytesRead = audioInputStream.read(abData, 0, abData.length); 
 if (nBytesRead >= 0) 
  auline.write(abData, 0, nBytesRead); 
 } 
 } catch (IOException e) { 
 e.printStackTrace(); 
 return; 
 } finally { 
 auline.drain(); 
 auline.close(); 
 } 
 
 } 
 
 
} 

好了,到此结束。

更多关于播放器的内容请点击《java播放器功能》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • mac用于开发使用时间长硬盘会越来越小,速度越来越慢的,亦是花了几分钟研究怎么清理系统的缓存,方法:1,到https:www.omnigroup.commore安装OmniDisk ... [详细]
  • 1、给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外&#x ... [详细]
  • 6.列表表格列表(1)liststyle基本语法语法取值使用说明设置列表项目相关样式。当liststyleimage和liststyletype都被指定了时,liststyleim ... [详细]
  • 室内外一体化建模
    http:www.fx361.compage20180913422182 ... [详细]
  • 1.简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?rea ... [详细]
  • 开发笔记:iOS学习笔记: 使用CAShapeLayer创建带有空心区域的遮罩层
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了iOS学习笔记:使用CAShapeLayer创建带有空心区域的遮罩层相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 苹果后置
    iPhoneX的前置TrueDepth传感系统让手机可实现脸部解锁,还实现对面部表情的实时跟踪和识别,生成Animojis。但显然,这只是苹果的第一步。如果把苹果手机后置摄像头也加 ... [详细]
  • 文档地址:https:github.comaxiosaxiosaxios理解和使用1.请求配置1{2请求服务器的URL3url:'user',45method创 ... [详细]
  • http:nickycc.lofter.compost23e2a6_17d6a07http:blog.csdn.netl25000articledetails46842013htt ... [详细]
  • Spring WebFlux开门迎客,却来了一位特殊客人
    话说SpringWebFlux已经出现有一段时间了,但是知道他的人并不是很多。这让他很是闷闷不乐。还有更惨的是,那些敢于吃螃蟹的人在尝试了他之后,有的竟把代码重新改回到Spring ... [详细]
  • hrbust OJ13哥的机器人(利用叉乘判断拐向)
    ViewCode**利用叉乘判断拐向*auther:Try86*#include#includeusingnamespacestd;ch ... [详细]
  • 1.亥姆霍兹线圈:用于制造一个均匀磁场并垂直于电子运行轨道两个并列的线圈2.LR回路:基尔霍夫定律不成立,因为有自感存在cos2wt或者sin2wt的时间平均值是12思考: ... [详细]
  • 一、向Unity和Android问好欢迎来到手机游戏开发的精彩世界。无论你是还在寻找合适 ... [详细]
  • 树状数组总结——详解(单点/区间查询, 单点/区间修改, 逆序对)
    http:blog.csdn.netwzw1376124061articledetails731882382017-06-1317:2464人阅读评论(0)收藏举报版权声明:!!! ... [详细]
  • 实验十:指针
    #includevoidsplitfloat(floatx,int*intpart,float*fracpart);intmain(void){intintpa ... [详细]
author-avatar
上海悠u7_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有