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

如何快進和快退音樂?這也是音樂播放器中常用的一個功能,mciSendString也為我們提供好了,與上一節(jié)調(diào)整音量類似,他也需要三個步驟:

  1. 獲取當前播放進度

  2. 增加和減少進度

  3. 定位新的播放進度,并播放


第一步,使用status獲取,如下代碼:

char a[100];
mciSendString("status dotcpp.mp3 position", a, 100, NULL);

它的進度信息保存在數(shù)組a里,接下來我們要進行字符串到數(shù)字的轉(zhuǎn)化


第二步,增加或減少進度,依舊需要先調(diào)用atoi命令轉(zhuǎn)換為數(shù)字,增加或減少后,在用sprintf轉(zhuǎn)換成字符串才可以


第三步,通過seek命令來重新定位音樂的播放進度,如定位到8秒位置播放,則代碼為:

mciSendString("seek dotcpp.mp3 to 8*1000", 0, 0, 0);  //單位為毫秒

另外,如果想直接定位到頭和尾,也可以這么寫:

mciSendString("seek dotcpp.mp3 to start", 0, 0, 0);//從開頭開始播放
mciSendString("seek dotcpp.mp3 to end", 0, 0, 0);//從最后位置開始播放


那么,思路疏通之后,我們寫一個可以連續(xù)控制進度的音樂播放程序代碼就有了:

#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)
	{
		ch=getch();
		mciSendString("status dotcpp.mp3 position", a, 100, NULL);
		num=atoi(a);
		printf("position: %d\n",num);
		if(ch=='a')
		{
			num=num-1000;
			sprintf(a,"seek dotcpp.mp3 to %d",num);
			mciSendString(a, 0, 0, 0);
			mciSendString("play dotcpp.mp3",NULL,0,NULL);
		}
		else if(ch=='d')
		{
			num=num+1000;
			sprintf(a,"seek dotcpp.mp3 to %d",num);
			mciSendString(a, 0, 0, 0);
			mciSendString("play dotcpp.mp3",NULL,0,NULL);
		}
		else
		{			
		}
	
	}
	getchar();
	mciSendString("close dotcpp.mp3",NULL,0,NULL);
	return 0;
}


運行視覺效果如下(聽覺效果建議上機體驗):

MCI控制音樂前進后退

依舊是老方式,寫個大循環(huán),接收輸入信息,通過判斷a和d來決定后退還是前進,每次1000毫秒,為了便于學(xué)習(xí)和觀察,我們每次打印了當前播放的進度信息,大家理解之后務(wù)必親自上機實驗。

點贊(0)

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

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

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

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

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

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

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

手把手講解近五年真題的藍橋杯輔導(dǎo)課程

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