近日刘畊宏的大火,不仅引起全民健身现象,还带火了《本草纲目》歌曲,开始成为无数男孩女孩的健身歌曲。那么今天我们来用Java语言实现播放本草纲目,希望能让小伙伴们健身下!
若是要实现Java流畅连续播放声音,需要用上Java提供的Clip和SourceDataLine声音API来进行编程。
1、Clip API
Clip API是Java的一个非缓冲或内存声音API,属于javax.sound.sampled包的部分,常应用在读取和播放短的声音文件。在播放前,需要将音频文件被加载到内存,用户可完全控制播放方式和随机播放。
①创建一个示例类:SoundPlayerWithClip,实现LineListener接口,以便接收播放的线事件(OPEN、CLOSE、START和STOP)。
public class SoundPlayerUsingClip implements LineListener {
boolean isPlaybackCompleted;
@Override
public void update(LineEvent event) {
if (LineEvent.Type.START == event.getType()) {
System.out.println("Playback started.");
} else if (LineEvent.Type.STOP == event.getType()) {
isPlaybackCompleted = true;
System.out.println("Playback completed.");
}
}
}
②从项目的资源文件夹中读取音频文件(我的资源文件夹包含三个不同格式的音频文件,即WAV、MP3和MPEG)。
nputStream inputStream = getClass().getClassLoader().getResourceAsStream(audioFilePath);
③在文件流中创建一个AudioInputStream。
AudioInputStream audioStream = AudioSystem.getAudioInputStream(inputStream);
④创建一个DataLine.Info对象。
AudioFormat audioFormat = audioStream.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, audioFormat);
⑤在DataLine.Info创建一个Clip对象,打开流,然后调用start来开始播放音频。
Clip audioClip = (Clip) AudioSystem.getLine(info);
audioClip.addLineListener(this);
audioClip.open(audioStream);
audioClip.start();
⑥关闭开放的资源
audioClip.close();
audioStream.close();
最后运行代码,即可实现播放本草纲目。
除此之外,还有一些其他使用技巧,具体如下:
①循环播放五次音频文件
audioClip.loop(4); //Java等编程语言是0-4
②无期限播放音频
audioClip.loop(Clip.LOOP_CONTINUUSLY);
③从上次播放位置开始播放
audioClip.setMicrosecondPosition(30_000_000);//从第30秒开始播放。
此外还有SourceDataLine API,由于文章篇幅所限,先放到下一篇文章,读者可点击我头像进行查找。
0
评论 0 收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
您需要登录后才可以评论登录
热门评论0
相关文章
精彩课程
开班信息
设计指南
更多>>热门面试题
更多>>热门推荐
更多>>
LED驱动模块RSC6218A 5W-18W迷你高效驱动电源应用-REASUNOS(瑞森半导体)
1
从零开始成为电子大佬,第一步先识读电源!
2
IEEE 1588 四通道/八通道系统同步器:8A34001E-000AJG、8A34002E-000NLG、8A34003E-000NBG(器件)
3
光电器件故障了,如何排除维护?
4
走进电子元器件,了解热继电器
5
搞电子设计的人,转行能干什么?
6
Solder Mask和Paste Mask有哪些不同?
7
PCB板制造技术水平的标志如何看?
8
雷军招人:为中国汽车工业全面崛起做贡献!
9
电源和地的高速PCB布线处理方法
10
机器学习如何彻底改变农业行业?