两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

這一節(jié)我們學習如何調(diào)整音量的大小,調(diào)整音量大小分為三個步驟:

  1. 獲取當前音量值

  2. 增加或減少音量

  3. 按照新的音量值重新設(shè)定音量


因此,按照這個三個步驟,我們分別來看,第一步獲取音量需要用到命令status,完整的語句為:

char a[100];
mciSendString("status dotcpp.mp3 volume", a, 100, 0);

這句話意思是獲取Fireflies.mp3音樂的當前音量,因為結(jié)果是字符串形式,所以回傳給數(shù)組a

第二步,我們設(shè)置新的音量值,需要注意的是這里的音量范圍雖然為0~1000,但這個只是一個分子值,也就是說我們傳入的數(shù)值會除以1000得到百分比,然后乘以當前音量值,比如傳900,就意味著設(shè)置成現(xiàn)有音量的90%大小

第三步,調(diào)用setaudio命令重置音量大小,如“setaudio dotcpp.mp3 volume to 900”的意思就是設(shè)置為當前音量的90%


以上三步,看起來簡單,但由于音量值是一個字符串,故我們還要面臨字符串和數(shù)字的來回轉(zhuǎn)換,需要用到atoi和sprintf函數(shù),我們可以參考如下代碼:

#include <windows.h>
#pragma comment (lib,"winmm.lib")
int main()
{
	int num;
	char ch;
	char a[100];
	mciSendString("open dotcpp.mp3",NULL,0,NULL);
	mciSendString("play dotcpp.mp3",NULL,0,NULL);
	
	while(1)
	{
		mciSendString("status dotcpp.mp3 volume", a, 100, 0);
		num=atoi(a);
		printf("%d\n",num);
		ch=getch();
		if(ch=='w')
		{
			num=(num+100>=1000)?1000:num+100;
		}
		else if(ch=='s')
		{
			num=(num-100<=0)?0:num-100;
		}
		else
		{			
		}
		printf("num=%d\n",num);
		sprintf(a, "setaudio dotcpp.mp3 volume to %d", num);//把此時的音量以及操作字符串賦給a
		mciSendString(a, NULL, 0, NULL);//音量的設(shè)置
	}
	getchar();
	mciSendString("close dotcpp.mp3",NULL,0,NULL);
	return 0;
}

視覺效果如下:

MCI控制音量

大家可以自行閱讀代碼,代碼中我們用了一個大循環(huán),來接收w和s分別控制的增加音量和減少音量,每次幅度為100,由于考慮到音量0~1000的范圍,我們用?:三目運算符進行了范圍判斷,為了便于學習,我們隨時打印了當前音量值方便觀察,大家可以自行上機嘗試

點贊(1)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學奧賽或C++選手的 必學C++課程

藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導課程

Dotcpp在線編譯      (登錄可減少運行等待時間)