2013-11-22 4 views
1

JLayer Class Player를 사용하여 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) 

나는 솔루션과 I에 대한 인터넷을 검색 한 이 오류는 특정 .mp3 파일의 문제로 인해 발생할 수 있지만 .wav 또는 .wma 파일은 받아 들여지지 않았습니다. 어떻게하면 플레이어가 작동하도록 할 수 있는지 알 수 있습니까? 미리 감사드립니다.

+0

JLayer는 거의 모든 MP3 파일에서 작동합니다. 예외는 "무료 비트 전송률"입니다 (그러한 파일은 본 적이 없음). 오류 코드 102는 스트림의 읽기 오류를 나타냅니다. 플레이어 (자체 스레드에서 실행되는)를 시작한 다음 주 스레드에서 입력 스트림을 닫은 것 같습니다. 간단한 코딩 오류. – Durandal

+0

좋습니다, 지금까지 고맙습니다. – user3021755

+0

나는 내 코드에'BufferedInputStream bis'을 가지고 있는데,'bis.close()'를 주석 처리하면 플레이어가 제대로 동작합니다. 왜 입력 스트림을 닫으면 오류가 발생하는지 설명 할 수 있습니까? 또한 'myPlayer.play()'할당을 별도의 스레드에 넣었지만 플레이어 JFrame을 닫을 수 없습니다. 어떻게하면 응용 프로그램을 닫을 수 있습니까? – user3021755

답변

0

Linux에서 Javazoom을 사용하여 약간의 왜곡을 입었습니다. 위의 입력 스트림 중단에 대한 설명은 Player 클래스를 인스턴스화 된 상태로 유지하고 매번 열기 전에 버퍼링 된 입력 스트림을 닫으라는 메시지를 보여주었습니다. 도움이되었지만 확실하지 않습니다. 파이어 폭스를 닫으면 다시 돌아 왔지만 덜 자주 사라졌습니다.

입력 스트림이 중단되는 것에 대해 통찰 해 주셔서 감사합니다.