我想開發一個遊戲,它使用一首歌曲。這首歌是作爲背景音樂播放的。filenotfoundexception當引用文件路徑
我想分析音頻頻譜的當前頻率並輸出其值。我已經使用FFT算法來獲得頻率,但現在我需要獲得歌曲的長度。所以我正在使用此代碼:
FileHandle filemain = Gdx.files.internal("data/determination.mp3");
File file = new File(filemain.toString());
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
AudioFormat format = audioInputStream.getFormat();
long audioFileLength = file.length();
int frameSize = format.getFrameSize();
float frameRate = format.getFrameRate();
float durationInSeconds = (audioFileLength/(frameSize * frameRate));
但是,它然後返回FILENOTFOUNDEXCEPTION
。使用Gdx.files.internal("data/determination.mp3");
它工作正常。但我不能在AudioInputSream
聲明中使用它,因爲它需要一個文件,而不是文件句柄。如果我像上面那樣使用AudioInputStream
中的文件路徑,它將返回錯誤。
我哪裏錯了?我該如何解決這個問題?
我猜你不是在尋找那個文件的地方。 –
提示:打印出filemain.toString()。這是一個有效的文件路徑,還有一個在當前目錄的上下文中引導你想要的文件? (我猜你的Gdx文件可能在某種類似zip的容器中,無法通過正常的文件打開操作來解決。) –
它正在打印出正確的文件路徑。那麼爲什麼它可用於GDX而不是文件操作? – user3241507