簡體   English   中英

如何使用 java 直接在沒有中間 mp3 文件的揚聲器上創建聲音?

[英]How to create a sound using java directly to the speakers without intermediate mp3 file?

如何使用 java 直接在沒有中間 mp3 文件的揚聲器上創建聲音?

我想直接訪問揚聲器。

我努力了

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" out.mp3

但這會產生一個大約 40kB 的文件,對於這樣一個簡單的事情來說,這真的看起來有點矯枉過正,所以我想跳過中間文件並直接訪問揚聲器。

一條評論推薦“AudioSystem.getTargetDataLine()”,它在我的盒子上可用,但在我想要播放聲音的 android 設備上卻沒有。 所以我必須澄清並添加一個新標簽。

我並不完全清楚您的意思是“使用 Java 直接向揚聲器創建聲音”。 我假設如果它發送到揚聲器的聲音,它意味着被聽到。

直接創建的聲音通常是通過創建 PCM 數據(脈沖編碼調制)來完成的。 在台式機/筆記本電腦上,一旦有了 PCM 文件,就可以使用javax.sound.sampled.SourceDataLine播放它。 在 Android 系統上,您可以使用AudioTrack對 stream PCM 數據。

當我想到創造聲音時,通常會想到的是合成器。 創建 PCM 有點涉及解釋,我什至不知道我是否在正確的軌道上回答你的問題。 有了更多的指導,如果我能提供幫助,我會添加更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM