2015-04-14 52 views
1

編輯Windows 8.1中的WPF應用程序mixerSetControlDetails返回MMSYSERR_ERROR

修改n音訊源代碼和一點點調試後,我發現mixerSetControlDetails功能,當我設置Value屬性被稱爲返回MMSYSERR_ERROR

有沒有辦法獲得有關爲什麼mixerSetControlDetails失敗的更多信息?

我也開放給其他方式來完成在C#上的同樣的事情。

原始

我有一些代碼,語音計算能量,並將根據使用n音訊計算的值的麥克風的增益值。閱讀音頻樣本沒有問題,但當我嘗試設置麥克風提升時,程序卡住了。

我檢查了Windows 7,8和8.1上的問題。該問題僅在Windows 8.1上發生。有趣的是,當我在Windows 8.1的虛擬機上運行程序時,它可以按預期工作。這可能是一個權限問題嗎?

下面是設置的增加值

foreach (MixerControl mixerControl in MixerLine.Controls) 
{ 
    if (mixerControl.ControlType == MixerControlType.Volume) 
    { 
     UnsignedMixerControl volumeControl = (UnsignedMixerControl)mixerControl; 

     volumeControl.Value = (uint) value; 
    } 
} 

凡與此代碼預先創建MixerLine的代碼。

MixerLine = new MixerLine((IntPtr) deviceID, 0, MixerFlags.WaveIn); 

回答

0

看來mixerSetControlDetails函數返回MMSYSERR_ERROR隨機(至少我無法找到一個模式)。實際上,它確實設置了新的值,只是忽略了異常,或者如果它沒有設置,請嘗試再次設置值。卡住的行爲是關於我的程序,與此錯誤無關。

相關問題