今天就跟大家聊聊有關(guān)Java中怎么利用多線程實(shí)現(xiàn)一個(gè)異步音頻播放器,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)東明免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
一、編程規(guī)約
(六)并發(fā)處理
l 阿里的P3C開(kāi)發(fā)規(guī)范插件會(huì)給出警告:
private static ExecutorService executor = Executors.newFixedThreadPool(4);
l Java多線程異步音頻播放器:
實(shí)現(xiàn)Java音頻播放器時(shí),支持多線程異步播放,創(chuàng)建線程池時(shí)遵守《阿里Java開(kāi)發(fā)手冊(cè)》規(guī)約。
代碼下載:https://github.com/rickding/HelloJava/tree/master/HelloAudio
class Player implements Runnable {
private static ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(
4,
new BasicThreadFactory.Builder().namingPattern("audio-player-pool-%d").daemon(true).build()
);
public static void asyncPlay(URL fileUrl) {
if (fileUrl == null) {
return;
}
// 播放進(jìn)程
Player player = new Player();
try {
player.audioStream = AudioSystem.getAudioInputStream(fileUrl);
} catch (UnsupportedAudioFileException e) {
System.err.println(e.getMessage());
} catch (IOException e) {
System.err.println(e.getMessage());
}
executorService.execute(player);
}
}
看完上述內(nèi)容,你們對(duì)Java中怎么利用多線程實(shí)現(xiàn)一個(gè)異步音頻播放器有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。