簡體   English   中英

使用特定端口和數據線的Java Sound

[英]Java Sound using specific Ports and DataLines

感覺就像我在此站點上提出的與Java聲音相關的第100個問題,但是在Java Sound API或jsresources.org的任何地方都找不到答案。 我正在制作一個多軌錄音機,到目前為止,它的工作效果很好,好於預期,我目前遇到的問題是允許用戶在運行時為每個音軌選擇一個輸入。 現在,我的程序只需從Mixer獲取可用的TargetDataLine ,我就可以在錄制過程中控制音量以及保持平衡。 如果我列出Ports並允許用戶選擇特定的Port (例如筆記本電腦中的內置麥克風),如何獲取該特定PortTargetDataLine來進行記錄? 關閉所有未使用的Ports是否有問題?

我還只是在列出Ports源時提到了輸入和目標輸出時才注意到,我只是習慣了DataLines ,如果有人可以澄清我會很感激的話。

有什么東西,可以幫助我解決我目前的問題是理解之間的關系PortsDataLines ,我知道這兩個都是,但我不明白為什么你不能得到DataLinePort就像你混頻器,那么什么是兩者之間的關系?

您已經超越了我的嘗試,但是也許我仍然可以幫上忙!

您是否看到端口和數據線之間差異的摘要? 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.

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