月黑风高的一天,突然想听歌,于是想起来自己从没有用Java实现本地歌曲播放,结果令人大失所望,一百度偶然看到别人用python简单的几句代码就实现了,于是我开始学python了,这是个令人悲伤的故事!!!
前言
提示:以下内容并没有值得啥学习的:
一、python怎么实现本地音乐播放的?
1.引入第三方库pygame
Pygame是被设计用来写游戏的python模块集合,Pygame是在优秀的SDL库之上开发的功能性包。python可以导入pygame来开发具有全部特性的游戏和多媒体软件
直接通过包管理工具安装 pip install Pygame
安装成功后通过pip show Pygame 查询
2.python代码实现
import time
import pygame
pygame.mixer.init()
pygame.mixer.music.load(r"C:\Users\文帝\Desktop\Zyboy忠宇 - 妈妈的话.mp3")
pygame.mixer.music.play()
time.sleep(10)
pygame.mixer.music.stop()
二、Java怎么实现本地音乐播放?
1.创建Maven项目导入jlayer依赖
JLayer(Java Layer)是一个用于播放 mp3 音频文件的开源项目,可以简单地播放一个 mp3 音频文件。
<dependency>
<groupId>javazoom</groupId>
<artifactId>jlayer</artifactId>
<version>1.0.1</version>
</dependency>
包中有写好的player类给我们提供了音乐播放的方法:
方法 | 作用 |
---|
void play() | 播放 | void close() | 停止播放, 关闭播放器 | boolean play(int frames) | 只播放指定数量的帧数 | boolean isComplete() | 是否播放完毕 | int getPosition() | 返回当前播放位置 (毫秒) |
2.java代码实现
import javazoom.jl.player.Player;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.util.concurrent.TimeUnit;
public class MP3Player {
private String filename;
private Player player;
public MP3Player(String filename) {
this.filename = filename;
}
public void play() {
try {
BufferedInputStream buffer = new BufferedInputStream(
new FileInputStream(filename));
player = new Player(buffer);
player.play();
} catch (Exception e) {
System.out.println(e);
}
}
public void stop(){
player.close();
}
public static void main(String[] args) {
MP3Player mp3 = new MP3Player("C:\\Users\\文帝\\Desktop\\Zyboy忠宇 - 妈妈的话.mp3");
mp3.play();
try {
TimeUnit.MINUTES.sleep(1);
mp3.stop();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
注意:音乐可以播放,但我想让音乐播放一分钟后停止,采用线程休眠发现并没有啥用,音乐还是会播放,等音乐播放完后才会停止,由于play() 这个方法是阻塞式的,也就同步的,程序运行的时候,音乐不放完代码是不会往下走的
总结
Python在某方面是真的简单
|