主程式:
bool mutedevice(bool bmute)
hr = penumerator->enumaudioendpoints(ecapture /*erender*/, device_state_active, &pcollection);
if (hr != s_ok)
hr = pcollection->getcount(&devicecount);
if (hr != s_ok)
for (uint dev=0;devitem(dev,&pdevice);
if (hr == s_ok)
safe_release(pvolumeapi);
} }}
safe_release(pproperties);
}safe_release(pdevice);
} }releasepcollection:
safe_release(pcollection);
releasepenumerator:
safe_release(penumerator);
return 0;
}// set fvolume with a value from 0 to 1.
bool setvolume(float fvolume = 0)
hr = penumerator->enumaudioendpoints(ecapture /*erender*/, device_state_active, &pcollection);
if (hr != s_ok)
hr = pcollection->getcount(&devicecount);
if (hr != s_ok)
for (uint dev=0;devitem(dev,&pdevice);
if (hr == s_ok)
propvariant varname;
propvariantinit(&varname);
//hr = pproperties->getvalue(pkey_device_bustypeguid, &varname);
hr = pproperties->getvalue(pkey_device_friendlyname, &varname);
if (hr == s_ok )
}safe_release(pvolumeapi);
} }}
safe_release(pproperties);
}safe_release(pdevice);
} }releasepcollection:
safe_release(pcollection);
releasepenumerator:
safe_release(penumerator);
return 0;
}bool adjustvolume(bool bup)
hr = penumerator->enumaudioendpoints(ecapture /*erender*/, device_state_active, &pcollection);
if (hr != s_ok)
hr = pcollection->getcount(&devicecount);
if (hr != s_ok)
for (uint dev=0;devitem(dev,&pdevice);
if (hr == s_ok)
}else
}pvolumeapi->setmastervolumelevelscalar(fvolume,null);
}propvariant varname;
propvariantinit(&varname);
//hr = pproperties->getvalue(pkey_device_bustypeguid, &varname);
hr = pproperties->getvalue(pkey_device_friendlyname, &varname);
if (hr == s_ok )
}else
}pvolumeapi->setchannelvolumelevelscalar(i,fvolume,null);}}
safe_release(pvolumeapi);
} }}
safe_release(pproperties);
}safe_release(pdevice);
} }releasepcollection:
safe_release(pcollection);
releasepenumerator:
safe_release(penumerator);
return 0;
}
int _tmain(int argc, _tchar* argv)
else if( !strcmp(buf,"1") )
else if( !strcmp(buf,"2") )
else if( !strcmp(buf,"3") )
else if( !strcmp(buf,"4") )
else if( !strcmp(buf,"5") )
else if( !strcmp(buf,"vu") )
else if( !strcmp(buf,"vd") )
else if( !strcmp(buf,"mute") )
else if( !strcmp(buf,"unmute") )
else
return 0;
}
測試程式:
int _tmain(int argc, _tchar* argv)
else
}return 0;
}
注意:shellexecute傳送的字串引數型別必須和主程式argv字串引數型別一致,例如都為ansi字串,或
者都為unicode字串,否則主程式不能正確的解析argv引數。
下面unicode字元編譯環境下的測試程式就不正確:
int _tmain(int argc, _tchar* argv)
else
}return 0;
}
必須改為如下:
int _tmain(int argc, _tchar* argv)
else
}return 0;
}
Flash MX as 聲音控制分解
flash聲音被廣泛應用在網頁 mtv 片頭等flash動畫當中。一段美好的 會給你的動畫新增更多的精彩。聲音的控制便成了必不可少的部分。本教程為大家從基礎知識 簡單示例到最後的例項製作,一步一步為大家講解聲音控制的方法。各位在做例項的時候,一定要注意影片剪輯和主場景中的切換,不要弄混了。教程中用紅...
Flash聲音控制詳解
聲音是多 的重要組成元素,恰當 靈活地運用聲音往往是多 作品的成敗關鍵。flash作為人們喜愛的多 工具,其聲音的使用方式也豐富多樣,本文 了在flash中使用聲音的幾種情況,希望能對大家有所幫助。一 在時間軸中使用聲音 這是flash中聲音最常使用的方式,任何一本flash教材都會講到這個問題,所...
Flash MX as聲音控制分解
1b 教程前言 1b flash聲音被廣泛應用在網頁 mtv 片頭等flash動畫當中。一段美好的 會給你的動畫新增更多的精彩。聲音的控制便成了必不可少的部分。本教程為大家從基礎知識 簡單示例到最後的例項製作,一步一步為大家講解聲音控制的方法。各位在做例項的時候,一定要注意影片剪輯和主場景中的切換,...