簡體   English   中英

如何在Java中停止正在運行的音樂線程?

[英]How do I stop a running music thread in Java?

我有一個課程,在游戲的無限循環中播放背景音樂。 我希望它在另一個類調用BackgroundMusic對象上的stopPlaying()方法時停止。 根據Oracle文檔,沒有辦法在Java中停止線程。

它說使用它檢查的變量,當變量是某個值時停止。 當我調用stopPlaying()並嘗試使while循環作為條件而不是true運行時,我嘗試進行布爾運行設置為false,但是沒有延遲就行不通。 (之前編輯的消息)

我會把我的課程放在這里,但這個網站一直說它沒有正確格式化,我之前已經完成了這個(從Eclipse粘貼)。 我把它放在PasteBin上: http ://pastebin.com/edCH2DXE

這是一個很大的錘子,但你可以通過調用musicThread.interrupt()中斷線程。 這將導致isInterrupted()為音樂線程返回true 如果線程當時正在執行一些阻塞I / O,則可能導致拋出InterruptedException ,因此您還需要捕獲它:

  try {
    while (!Thread.currentThread().isInterrupted()) {
       // play music
    }
  } catch (InterruptedException ex) {
    // any cleanup necessary
  }

同樣,它是一個很大的錘子,如果可以的話,最好使用布爾標志方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM