javasound

    0熱度

    2回答

    我寫了一個java代碼,將.wav文件讀入一個字節數組。 .WAV文件是44100Hz(每秒取樣),16個比特深度 對於具有長度爲1分鐘的音頻,我期望獲得與長度60 * 44100 * 2的字節數組。 (1分鐘= 60秒,每秒有44100個樣本,每個樣本包含16位= 2個字節) 但是,數組長度似乎加倍。有什麼解釋嗎?

    1熱度

    1回答

    我一直在學習如何播放聲音,而且我有一個很好的方法,但有一個問題。我嘗試播放聲音,但在方法運行後不會立即播放。 這裏是我的代碼: new Thread(new Runnable(){ public void run(){ File audioFile = new File(soundMap.get(key)); try { AudioInput

    0熱度

    1回答

    這是我第一次嘗試使用Java Sound,並且我試圖實現的是獲取源和目標行格式,以便我可以通過創建數據來監聽數據並將其記錄到文件中正確的AudioFormat對象與獲取的細節,但是當試圖通過Java控制檯打印所有細節時,沒有東西被打印出來。正如我所說,這是我第一次使用Java Sound的步驟,我不知道是否有更簡單的方法。 這是測試代碼,我到目前爲止... import javax.sound.s

    0熱度

    1回答

    我試圖在Java中循環ogg audiofiles。我正在使用VorbisSPI。 我成功地能夠播放文件一次。當我嘗試再次播放文件,或播放另一個文件,我得到一個 LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supp

    0熱度

    1回答

    我正在讀取帶有API JAVA聲音的聲音,並且想要恢復信號電平。我沒有問題,閱讀文件,這裏是我用它來嘗試獲得的信號電平碼: for (byte bit:bytes) { if (i<2) { signalLevelLeft=signalLevelLeft+Math.abs(bit); System.out.println("Left : "+i+" - "+

    0熱度

    1回答

    我寫了這個小信號生成方法。我的目標是在兩個通道(左和右)之間稍微有一段時間延遲或兩個通道之間的增益稍有差異時發出蜂鳴聲。 目前,我通過爲一個通道填充一個緩衝區來創建延遲,併爲第二個通道填充一個緩衝區值,並進一步減少通道之間的行爲(如果您有任何提示或想法如何更好地執行此操作,將不勝感激。) The下一階段正在做一些類似於增益的事情。我已經看到Java通過FloatControl給內置增益控制: Fl

    -1熱度

    1回答

    我目前正忙於創建一個視頻遊戲作爲一個小型的項目,以保持我的編程技能點在大學。電子遊戲的一個方面就是聲音效果,而且我非常想知道如何在Java中做到最好。 目前我使用的Clip類的聲音效果,這裏我使用的(很基本的,共同)代碼的預覽: try { AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new

    0熱度

    1回答

    如何編寫一個java程序,當麥克風捕捉的聲音足夠大時開始錄製聲音,並在聲音不響時停止。 換句話說,沒有記錄沒有時間限制 - 當波結束時,程序將停止錄製

    0熱度

    2回答

    我目前正在實施Java Sound SPI的編解碼器。我已經到了一個階段,我將不得不改變一些AudioInputStream的行爲(因此不得不重寫它)。但是,「樣本框架」的措詞對我來說沒有任何意義。我的編解碼器中的採樣數量和幀數量是非常不同的數字和含義。那麼在這個階級的背景下,它的意義是什麼? 例如,frameLength記錄爲「此流的長度,以樣本幀爲單位」。流的長度不等於流中的幀數。 frame

    0熱度

    2回答

    我正在使用一個聲音播放器,我試圖創建一個while循環,知道何時終止它正在播放JFrame。while循環應該循環,而剪輯(記錄)是播放並在剪輯完成時結束。但是,這是一個交易:while循環只在打印出某些東西時才起作用,我不希望它做什麼? import java.io.*; import java.net.URL; import javax.sound.sampled.*; import j