Java Sound正確獲取一段音訊當前播放的時間

趨向_quxiang發表於2020-12-20

問題背景:用AudioInputStream播放音訊,想準確獲取當前播放時間

我原來是通過幀長度進行獲取,通過當前幀位置/幀長度*音訊總時長,其實這樣對一些音訊的時間獲取是不準確的

line.getLongFramePosition() / frameLength * 音訊總時間

準確操作應當是使用DataSourceLine的getMicrosecondPosition方法才能準確到時間,不過注意這個時間是微秒,要轉化成秒

(float) line.getMicrosecondPosition() / 1000000

相關文章