2013-08-02 308 views
0

我有一個加載WAV音頻文件,併發揮它的一些特殊部分的MATLAB代碼。它曾經在我的電腦上播放聲音,但現在沒有聲音。算法正常工作,並顯示結果,但在沉默中,即不播放任何聲音。我在筆記本電腦上檢查它,它能正常工作並播放聲音。我不知道該怎麼辦?
,我已經做了,並可能導致問題的唯一的事情是:我已經得到了MATLAB的兩個版本在我的電腦:MATLAB 7.1和M​​ATLAB r2013a(8.1),我已經刪除了MATLAB 7.1,沒有它真的引起問題?
我重新安裝matlab 7.1然後,但它沒有幫助。
MATLAB不能播放聲音,請如我嘗試此代碼,但它不會播放聲音:
MATLAB不會播放聲音

[y,Fs] = audioread('1.wav'); 
sound(y,Fs); 

和我正在同代碼:silence removal

+0

你把y作爲支票嗎? –

+0

daqhwinfo('winsound')的輸出是什麼? – nkjt

+0

@門多,是的,我把它,沒問題。 – samdean

回答

0

由於daqhwinfo的輸出('winsound')顯示:

InstalledBoardIds: {'0' '1'}

這意味着Matlab看到多個聲卡/可能的音頻輸出。我相信它會默認爲哪一個是「0」。查看「BoardNames」和「ObjectConstructorName」的內容以確定發生了什麼。你可以嘗試(每個板卡ID):

load handel; 
% last input for audioplayer can be 1 or 0 to choose which audio output 
player = audioplayer(y, Fs, 16, 1); 
play(player); 

另一種方法來檢查:

ao = analogoutput('winsound',0); %should be default device 
ao2 = analogoutput('winsound',1); 

out = daqhwinfo(ao) 
out2 = daqhwinfo(ao2) 

比較這些與你從你的筆記本電腦,在聲音不工作得到的值。

+0

它給出了這樣的錯誤:使用audioplayer錯誤(線223) 找不到指定的設備 – samdean

+0

我檢查了一切,除了設備的名稱是一樣的。我的筆記本電腦上只有一個聲音設備,但我的電腦上只有兩個聲音設備。在「0」,這是默認爲我的電腦中正確的音頻設備和「1」是「調制解調器#0行播放」 ,我認爲我用它爲我的電視卡。 – samdean

+0

正如你所說我檢查了我的電腦的所有音頻輸出和聲音來自其6個適配器之一,但不是我的電腦的主要輸出。我將揚聲器連接到此適配器,但現在我的電腦沒有聲音。我怎麼能讓matlab使其輸出設備的主要輸出聲音(並感謝您的所有幫助) – samdean

1

我掙扎着這個問題很長一段時間。我的筆記本電腦播放聲音很好,但是

info = audiodevinfo 

返回一個空的結構。

事實證明,這是一個文件路徑的問題。

我救了我的自定義文件的路徑,然後還原默認的文件路徑:

restoredefaultpath 
rehash toolboxcache 

我再慢慢添加子文件夾回我的文件路徑和它工作得很好。