2013-11-22 35 views
1

我試圖播放使用JLayer類播放器的mp3文件。開始含 myPlayer.play() 你可以聽到這首歌的開頭幾百毫秒,那麼玩家的中斷,我得到了以下錯誤消息的跟帖:使用javazoom播放器的問題

> javazoom.jl.decoder.BitstreamException: Bitstream errorcode 102 at 
> javazoom.jl.decoder.Bitstream.newBitstreamException(Unknown Source) 
> at javazoom.jl.decoder.Bitstream.readFrame(Unknown Source) at 
> javazoom.jl.player.Player.decodeFrame(Unknown Source)  at 
> javazoom.jl.player.Player.play(Unknown Source) at 
> javazoom.jl.player.Player.play(Unknown Source) at 
> controller.PlayController.run(PlayController.java:51)  at 
> java.lang.Thread.run(Thread.java:724) 

我搜索解決方案和我的互聯網已經讀過這個錯誤可能是由於某些.mp3文件的問題而發生的,但.wav或.wma文件並未被接受。 有誰知道我如何讓球員工作?在此先感謝

+0

JLayer幾乎可以處理任何mp3文件 - 例外情況是「免費比特率」(從未見過這樣的文件)。錯誤代碼102指示來自流的讀取錯誤。您可能啓動了播放器(它在自己的線程中運行),然後關閉主線程中的輸入流。簡單的編碼錯誤。 – Durandal

+0

好的,謝謝你。 – user3021755

+0

我在我的代碼中有一個'BufferedInputStream bis',當我註釋掉'bis.close()'時,播放器就像它應該那樣工作。 你能解釋爲什麼關閉輸入流會產生錯誤? 此外,關閉播放器JFrame是不可能的,儘管我已經將'myPlayer.play()'賦值放在一個單獨的線程中。我怎樣才能讓應用程序能夠被關閉? – user3021755

回答

0

我已經在Linux上使用Javazoom一些失真。上面關於中斷輸入流的註釋提示我保持Player類的實例化並在每次打開之前關閉緩衝的輸入流,這似乎有所幫助,但我不確定。它回來了,但更少,現在消失,如果我關閉Firefox。

感謝您對輸入流被中斷的瞭解。