1. maven
<dependency>
<groupId>javazoom</groupId>
<artifactId>jlayer</artifactId>
<version>1.0.1</version>
</dependency>
2. API
實例 | 描述 | |
對象構造方式 | Player(InputStream in); |
參數:in 輸入流 |
Player(InputStream in, AudioDevice dev); | 參數:in 輸入流 dev 處理接口 | |
方法 | play(int frames); |
作用:mp3播放 參數:frames 幀數 無參調用默認 2147483647 注:播放佔用線程,建議另起線程調用 |
play(); | ||
boolean isComplete(); |
作用:驗證是否正在播放 注:當前線程創建對象,其他線程調用時可在當前線程調用 |
|
int getPosition(); |
作用:獲取播放進度 注:當前線程創建對象,其他線程調用時可在當前線程調用 |
|
void close(); |
作用:停止播放 注:當前線程創建對象,其他線程調用時可在當前線程調用 |
3. 實例代碼
@Test
public void test() {
FileInputStream inputStream = null;
BufferedInputStream bufferedInputStream = null;
try {
//聲明一個File對象
File mp3 = new File("D:/demo/a.mp3");
//創建一個輸入流
inputStream = new FileInputStream(mp3);
//創建一個緩衝流
bufferedInputStream = new BufferedInputStream(inputStream);
//創建播放器對象,把文件的緩衝流傳入進去
final Player player = new Player(bufferedInputStream);
new Thread(() -> {
//調用播放方法進行播放
try {
player.play();
} catch (JavaLayerException e) {
e.printStackTrace();
}
}).start();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
bufferedInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}