[英]Java Sound using specific Ports and DataLines
感覺就像我在此站點上提出的與Java聲音相關的第100個問題,但是在Java Sound API或jsresources.org的任何地方都找不到答案。 我正在制作一個多軌錄音機,到目前為止,它的工作效果很好,好於預期,我目前遇到的問題是允許用戶在運行時為每個音軌選擇一個輸入。 現在,我的程序只需從Mixer
獲取可用的TargetDataLine
,我就可以在錄制過程中控制音量以及保持平衡。 如果我列出Ports
並允許用戶選擇特定的Port
(例如筆記本電腦中的內置麥克風),如何獲取該特定Port
的TargetDataLine
來進行記錄? 關閉所有未使用的Ports
是否有問題?
我還只是在列出Ports
源時提到了輸入和目標輸出時才注意到,我只是習慣了DataLines
,如果有人可以澄清我會很感激的話。
有什么東西,可以幫助我解決我目前的問題是理解之間的關系Ports
和DataLines
,我知道這兩個都是,但我不明白為什么你不能得到DataLine
從Port
就像你混頻器,那么什么是兩者之間的關系?
您已經超越了我的嘗試,但是也許我仍然可以幫上忙!
您是否看到端口和數據線之間差異的摘要? http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/package-summary.html
在我看來,給定的端口只能與SourceDataLine或TargetDataLine之一配合使用,具體取決於它是輸入端口還是輸出端口。
您是否還嘗試過這里的示例? http://docs.oracle.com/javase/tutorial/sound/capturing.html
在我看來,由於端口擴展了Line,因此如果您用Port代替Line(假設它是輸入Port),則讀取音頻的示例代碼應該可以工作。 示例代碼對您有用嗎?
我猜想,如果您要混合來自多個端口的聲音,則需要解壓縮聲音數據,自己添加聲音值,然后將它們作為PCM樣本重新打包(即,進行自己的音頻混合),一次輸出線。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.