1
我試圖改變IPropertyStore中的一個標誌的值。但是,無論標誌的值如何,我的代碼似乎都表現得一樣。IPropertyStore_Commit方法 - 它是否需要,爲什麼不實施?
這是因爲改變後旗我的代碼不會調用IPropertyStore_Commit
?
我曾嘗試調用的方法,但是我得到一個錯誤代碼0x80004001
意思是「沒有實現」。因此,我的問題的第二部分:爲什麼不執行?
更詳細,我工作的一個Java軟件電話,這使得使用WASAPI的(通過JNI)的一些音頻處理的。本機代碼是用C寫
最近剛剛啓用AES(聲回波抑制),我發現,AGC(自動增益控制)也被激活。我試圖通過在IPropertyStore對象上設置MFPKEY_WMAAECMA_FEATR_AGC鍵來禁用AGC。但是,無論我設定的價值是什麼都沒有區別。
相關的代碼片段如下:
// Obtain the property store
void *pvObject;
HRESULT hr = IMediaObject_QueryInterface((IMediaObject *) thiz, &iid_, &pvObject);
// Do some checking that the store is valid...
// Set the value of the AGC key:
PROPVARIANT propvar = ...
IPropertyStore_SetValue((IPropertyStore *)pvObject, (REFPROPERTYKEY) key, &propvar);
// Call commit - fails, with 0x80004001:
HRESULT hr = IPropertyStore_Commit((IPropertyStore *)pvObject);