vista聲音控制

2021-04-18 12:21:37 字數 3607 閱讀 1136

主程式:
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動畫當中。一段美好的 會給你的動畫新增更多的精彩。聲音的控制便成了必不可少的部分。本教程為大家從基礎知識 簡單示例到最後的例項製作,一步一步為大家講解聲音控制的方法。各位在做例項的時候,一定要注意影片剪輯和主場景中的切換,...