亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? haudio.cpp

?? VC++高級編程技巧與示例
?? CPP
字號:
// HAudio.cpp: implementation of the CAudio class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "HAudio.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAudio::CAudio()
{
	m_PlayType=0;
	m_pWnd=0;
	m_DvcID=0;
}

CAudio::~CAudio()
{
}

//打開一個音頻文件:
BOOL CAudio::Open(unsigned int playtype,CString fn,CWnd * pwin)
{
	m_pWnd=pwin;
	m_PlayType=playtype;
	m_FileName=fn;
	unsigned long re;
	//打開文件:
	MCI_OPEN_PARMS OpenParms;
	switch(m_PlayType)
	{
		case _PLAYMIDI:
			{
				//MIDI類型的文件:
				OpenParms.lpstrDeviceType =(LPCSTR) MCI_DEVTYPE_SEQUENCER;
				OpenParms.lpstrElementName=(LPCSTR) m_FileName;
				break;
			}
		case _PLAYWAV:
			{
				//打開WAV類型的文件:
				OpenParms.lpstrDeviceType =(LPCSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
				OpenParms.lpstrElementName= m_FileName;
				break;
			}
		case _PLAYCD:
			{
				//播放CD:
				OpenParms.lpstrDeviceType =(LPCSTR) MCI_DEVTYPE_CD_AUDIO;
				break;
			}
		default:
			{
				AfxMessageBox("所指定的播放方式有誤!");
				return FALSE;
			}
	}
	OpenParms.wDeviceID=0;
	if(m_PlayType==_PLAYCD)
	{
		re=mciSendCommand(NULL,
				MCI_OPEN,MCI_WAIT|
				MCI_OPEN_TYPE|
   				MCI_OPEN_TYPE_ID,
				(DWORD)(LPVOID) &OpenParms
				);
	}
	else
	{
		re=mciSendCommand(NULL,
				MCI_OPEN,MCI_WAIT|
				MCI_OPEN_TYPE|
   				MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT,
				(DWORD)(LPVOID) &OpenParms
				);
	}
	m_DvcID=OpenParms.wDeviceID;
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

//關閉文件:
BOOL CAudio::Close()
{
	int re;
	re=mciSendCommand (m_DvcID, MCI_CLOSE, NULL, NULL);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

//播放文件:
BOOL CAudio::Play(int minutes,int seconds,int frames)
{
	if(m_PlayType==_PLAYMIDI||m_PlayType==_PLAYWAV)
	{
		//保存舊的時間格式:
		DWORD oldtf;
		unsigned long re;
		oldtf=GetTimeFormat();
		//設置MSF時間格式:
		SetTimeFormat(MCI_FORMAT_MILLISECONDS);
		//設置當前位置:
		MCI_PLAY_PARMS pp;
		pp.dwFrom=(minutes*60+seconds)*1000;
		pp.dwCallback=(DWORD)m_pWnd->m_hWnd;
		re=mciSendCommand(m_DvcID,MCI_PLAY,MCI_FROM,
						  (DWORD)(LPVOID)&pp);
		if(re)
		{
			throw new CAudioException(re);
			return FALSE;
		}
		//恢復原來的時間格式:
		if(oldtf!=MCI_FORMAT_MSF)
		{
			SetTimeFormat(oldtf);
		}
		return TRUE;
	}
	else
	{
		AfxMessageBox("該函數僅供播放MIDI或Wave文件用!");
		return FALSE;
	}
	return TRUE;
}

BOOL CAudio::PlayCD(DWORD track, DWORD minute, DWORD second, DWORD frame)
{
	int re;
	if(m_PlayType==_PLAYCD)
	{
		//保存原來的時間格式:
		DWORD oldtf;
		oldtf=GetTimeFormat();
		//設置時間格式:
		SetTimeFormat(MCI_FORMAT_TMSF);
		//開始播放CD(一次只播放一個):
		DWORD Pos;
		int m,s,f;
		MCI_PLAY_PARMS pp;
		Pos=MCI_MAKE_TMSF(track,minute,second,frame);
		pp.dwFrom=Pos;
		GetCDTrackLength(track,m,s,f);
		pp.dwTo=MCI_MAKE_TMSF(track,m,s,f);
		pp.dwCallback=(DWORD)m_pWnd->m_hWnd;
		re=mciSendCommand(m_DvcID,
						  MCI_PLAY,MCI_FROM|MCI_TO|MCI_NOTIFY,
					      (DWORD)(LPVOID)&pp
					     );
		if(re)
		{
			throw new CAudioException(re);
			return FALSE;
		}
		//恢復時間格式:
		if(oldtf!=MCI_FORMAT_TMSF)
		{
			SetTimeFormat(oldtf);
		}
	}
	else
	{
		AfxMessageBox("該函數僅供播放CD用!");
		return FALSE;
	}
	return TRUE;
}

BOOL CAudio::Pause()
{
	unsigned long re;
	MCI_PLAY_PARMS pp;
	re=mciSendCommand (m_DvcID, MCI_PAUSE, MCI_WAIT, 
	(DWORD)(LPVOID) &pp);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}


BOOL CAudio::Resume()
{
	unsigned long re;
	MCI_PLAY_PARMS pp;
	re=mciSendCommand (m_DvcID, MCI_RESUME, 0, 
	(DWORD)(LPVOID) &pp);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

BOOL CAudio::Stop()
{
	unsigned long re;
	re=mciSendCommand (m_DvcID, MCI_STOP, MCI_WAIT, NULL);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

BOOL CAudio::Seek(int min,int sec)
{
	unsigned long re;
	if(m_PlayType==_PLAYMIDI||m_PlayType==_PLAYWAV)
	{
		MCI_SEEK_PARMS SeekParms;
		SeekParms.dwTo = (min*60+sec)*1000;//時間單位為毫秒;
		re=mciSendCommand (m_DvcID, MCI_SEEK, MCI_TO|MCI_WAIT,
			            (DWORD)(LPVOID) 
						&SeekParms);
	}
	else
	{
		AfxMessageBox("該函數只供播放MIDI和Wave文件用!");
	}
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

BOOL CAudio::CDSeek(int track,int minute,int sec,int frame)
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("該函數只供播放CD音軌用!");
		return FALSE;
	}
	int re;
	DWORD Pos;
	Pos=MCI_MAKE_TMSF(track,minute,sec,frame);
	MCI_SEEK_PARMS sp;
	sp.dwTo=Pos;
	re=mciSendCommand (m_DvcID, MCI_SEEK, MCI_TO|MCI_WAIT,
		               (DWORD)(LPVOID) 
					    &sp);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

BOOL CAudio::SeekFirst()
{
	unsigned long re;
	//跳到文件頭:
	re=mciSendCommand(m_DvcID, MCI_SEEK,
				   MCI_SEEK_TO_START, NULL);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

BOOL CAudio::SeekLast()
{
	unsigned long re;
	//跳到文件尾:
	re=mciSendCommand(m_DvcID, MCI_SEEK,
				   MCI_SEEK_TO_END, NULL);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

//獲取信息:
unsigned long CAudio::GetStatus(DWORD item,DWORD track)
{
	unsigned long re;
	unsigned long flag;
	MCI_STATUS_PARMS sp;
	flag=MCI_STATUS_ITEM|MCI_WAIT;
	sp.dwItem=item;
	if(track!=0)
	{
		sp.dwTrack=track;
		flag|=MCI_TRACK;
	}
	re=mciSendCommand (m_DvcID, MCI_STATUS,flag,
					(DWORD)(LPVOID) &sp);
	if(re)
	{
		throw new CAudioException(re);
		return 0;
	}
	return sp.dwReturn;
}

BOOL CAudio::GetPosition(int & minute,int & second)
{
	if(m_PlayType!=_PLAYMIDI&&m_PlayType!=_PLAYWAV)
	{
		AfxMessageBox("函數GetPosition僅用于播放MIDI和Wave!");
		return FALSE;
	}
	//獲取舊的時間格式:
	DWORD oldtf;
	oldtf=GetTimeFormat();
	//設置時間格式:
	unsigned long re;
	MCI_SET_PARMS sp;
	sp.dwTimeFormat=MCI_FORMAT_MILLISECONDS;
	re=mciSendCommand (m_DvcID,MCI_SET,
		               MCI_SET_TIME_FORMAT|MCI_WAIT,
		               (DWORD)(LPVOID) &sp);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	//獲取現在的位置:
	DWORD pos;
	pos=GetStatus(MCI_STATUS_POSITION);
	second=(pos/1000)%60;
	minute=(pos/1000-second)/60;
	//恢復原來的時間格式:
	if(oldtf!=MCI_FORMAT_MILLISECONDS)
	{
		SetTimeFormat(oldtf);
	}
	return TRUE;
}

BOOL CAudio::GetCDPosition(int &tracks, int & minutes, int & seconds,int & frames)
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("函數GetCDPosition僅用于播放CD!");
		return FALSE;
	}
	//獲取舊的時間格式:
	DWORD oldtf;
	oldtf=GetTimeFormat();
	//設置時間格式:
	SetTimeFormat(MCI_FORMAT_TMSF);
	//獲取現在的位置:
	DWORD pos;
	pos=GetStatus(MCI_STATUS_POSITION);
	tracks=MCI_TMSF_TRACK(pos);
	minutes=MCI_TMSF_MINUTE(pos);
	seconds=MCI_TMSF_SECOND(pos);
	frames=MCI_TMSF_FRAME(pos);
	//恢復原來的時間格式:
	if(oldtf!=MCI_FORMAT_TMSF)
	{
		SetTimeFormat(oldtf);
	}
	return TRUE;
}

//錄音:
BOOL CAudio::Record()
{
	unsigned long re;
	MCI_RECORD_PARMS RecordParms;
	re=mciSendCommand (m_DvcID, MCI_RECORD, 
					NULL, (DWORD)(LPVOID) 
					&RecordParms);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

//保存錄制的Wvae文件:
BOOL CAudio::Save(LPCTSTR fn)
{
	unsigned long re;
	MCI_SAVE_PARMS SaveParms;
	SaveParms.lpfilename=fn;
	re=mciSendCommand (m_DvcID, MCI_SAVE,
					   MCI_SAVE_FILE | MCI_WAIT, 
					   (DWORD)(LPVOID) &SaveParms);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

//打開CD門:
BOOL CAudio::OpenCDDoor()
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("OpenCDDoor()函數只能供播放CD用!");
		return FALSE;
	}
	unsigned long re;
	re=mciSendCommand (m_DvcID, MCI_SET,
					   MCI_SET_DOOR_OPEN, NULL);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

//關上CD門:
BOOL CAudio::CloseCDDoor()
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("CloseCDDoor()函數只能供播放CD用!");
		return FALSE;
	}
	unsigned long re;
	re=mciSendCommand (m_DvcID, MCI_SET,
					   MCI_SET_DOOR_CLOSED, NULL);
	if(re)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

//讀取當前CD音軌:
unsigned long CAudio::GetCDCurTrack()
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("GetCDCurTrack()函數只能供播放CD用!");
		return FALSE;
	}
	unsigned long re;
	re=GetStatus(MCI_STATUS_CURRENT_TRACK);
	return re;
}

//讀取CD狀態:
unsigned long CAudio::GetCDMode()
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("GetCDMode()函數只能供播放CD用!");
		return FALSE;
	}
	unsigned long re;
	re=GetStatus(MCI_STATUS_MODE);
	return re;
}

//讀取CD中曲目數目:
unsigned long CAudio::GetCDNumOfSongs()
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("GetCDNumOfSongs()函數只能供播放CD用!");
		return FALSE;
	}
	unsigned long re;
	re=GetStatus(MCI_STATUS_NUMBER_OF_TRACKS);
	return re;
}

//確定CD是否準備好:
unsigned long CAudio::GetCDReady()
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("GetCDReady()函數只能供播放CD用!");
		return FALSE;
	}
	unsigned long re;
	re=GetStatus(MCI_STATUS_READY);
	return re;
}

//獲取CD音軌的長度:
BOOL CAudio::GetCDTrackLength(int track,int & minutes,int & seconds,int & frames)
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("函數GetCDTrackLength僅供播放CD用");
		return FALSE;
	}
	DWORD len;
	len=GetStatus(MCI_STATUS_LENGTH,track);
	minutes=MCI_MSF_MINUTE(len);
	seconds=MCI_MSF_SECOND(len);
	frames=MCI_MSF_FRAME(len);
	return TRUE;
}

void CAudio::GetLength(int & minutes,int & seconds)
{
	DWORD len;
	DWORD oldtf;
	oldtf=GetTimeFormat();
	if(oldtf!=MCI_FORMAT_MILLISECONDS)
	{
		SetTimeFormat(MCI_FORMAT_MILLISECONDS);
	}
	len=GetStatus(MCI_STATUS_LENGTH);
	seconds=(len/1000)%60;
	minutes=(len/1000-seconds)/60;
	if(oldtf!=MCI_FORMAT_MILLISECONDS)
	{
		SetTimeFormat(oldtf);
	}
}

//確定CD是否在光驅中:
unsigned long CAudio::GetCDInDrive()
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("GetCDInDrive()函數只能供播放CD用!");
		return FALSE;
	}
	unsigned long re;
	re=GetStatus(MCI_STATUS_MEDIA_PRESENT);
	return re;
}


//檢查指定曲目是否為音頻曲目:
unsigned long CAudio::GetStatusTypeTrack()
{
	if(m_PlayType!=_PLAYCD)
	{
		AfxMessageBox("GetStatusTypeTrack()函數只能供播放CD用!");
		return FALSE;
	}
	unsigned long re;
	re=GetStatus(MCI_CDA_STATUS_TYPE_TRACK);
	return re;
}

BOOL CAudio::SetTimeFormat(DWORD tfmt)
{
	int re;
	MCI_SET_PARMS setpara;
	
	setpara.dwTimeFormat = tfmt;

	re=mciSendCommand(m_DvcID,MCI_SET, 
        	          MCI_SET_TIME_FORMAT,
					  (DWORD)(LPVOID) &setpara);
	if(re!=0)
	{
		throw new CAudioException(re);
		return FALSE;
	}
	return TRUE;
}

DWORD CAudio::GetTimeFormat()
{
	DWORD tf;
	tf=GetStatus(MCI_STATUS_TIME_FORMAT);
	return tf;
}

//////////////////////////////////////////////////////////////////////
// CAudioException Class
//////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAudioException::CAudioException(int re)
{
	m_ErrorNumber=re;
	m_ErrorInfo=new char [255];
}

CAudioException::~CAudioException()
{
	if(m_ErrorInfo)
	{
		delete [] m_ErrorInfo;
	}
}

int CAudioException::GetErrorNumber()
{
	return m_ErrorNumber;
}

LPCTSTR CAudioException::GetErrorMessage()
{
	BOOL re;
	re=mciGetErrorString(m_ErrorNumber,m_ErrorInfo,255);
	if(re==FALSE)
	{
		m_ErrorInfo="獲取錯誤信息失敗!";
	}
	return m_ErrorInfo;
}

//////////////////////////////////////////////////////////
//                           EOF                        //
//////////////////////////////////////////////////////////
//前進:
void CAudio::Forward(int sec)
{
	int lt,curp;
	int t,m,s,f;
	if(m_PlayType!=_PLAYCD)
	{
		GetLength(m,s);
		lt=m*60+s;
		GetPosition(m,s);
		curp=m*60+s;
		if((lt-curp)<=sec)
		{
			sec=lt-curp;
		}
		Play(m,s+sec);
	}
	else
	{
		t=GetCDCurTrack();
		GetCDTrackLength(t,m,s,f);
		lt=m*60+s;
		GetCDPosition(t,m,s,f);
		curp=m*60+s;
		if((lt-curp)<=sec)
		{
			sec=lt-curp-1;
		}
		PlayCD(t,m,s+sec);
	}
}
//后退:
void CAudio::Rewind(int sec)
{
	int curp;
	int t,m,s,f;
	if(m_PlayType!=_PLAYCD)
	{
		GetPosition(m,s);
		curp=m*60+s;
		if((curp-sec)<=0)
		{
			Play(0,0);
		}
		else
		{
			Play(m,s-sec);
		}
	}
	else
	{
		GetCDPosition(t,m,s,f);
		curp=m*60+s;
		if((curp-sec)<=0)
		{
			PlayCD(t,0,0);
		}
		else
		{
			PlayCD(t,m,s-sec);
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产综合久久久久久久久久久久| 亚洲欧美日韩一区| 日本道色综合久久| 粉嫩13p一区二区三区| 午夜精品一区在线观看| 国产精品久久久久婷婷| 日韩欧美激情一区| 欧美精品aⅴ在线视频| 色视频成人在线观看免| 丁香桃色午夜亚洲一区二区三区| 爽爽淫人综合网网站| 亚洲人成小说网站色在线| 国产视频一区二区在线观看| 欧美精品粉嫩高潮一区二区| 欧美在线|欧美| 欧美性大战久久| 欧美专区日韩专区| 欧美自拍丝袜亚洲| 91国产免费观看| 欧洲生活片亚洲生活在线观看| 不卡av电影在线播放| 国产盗摄精品一区二区三区在线| 精品影视av免费| 韩国精品主播一区二区在线观看 | 久久久久国产精品麻豆| 欧美一区二区私人影院日本| 91精品久久久久久久99蜜桃| 欧美日韩二区三区| 欧美一级高清片| 久久精品欧美一区二区三区不卡| 久久婷婷成人综合色| 国产丝袜欧美中文另类| 国产精品免费aⅴ片在线观看| 中文字幕国产一区| 亚洲国产综合在线| 激情综合色丁香一区二区| 成人免费毛片app| 91丨九色丨尤物| 日韩欧美区一区二| 日本一区二区免费在线| 亚洲成人激情自拍| 久久99精品国产麻豆婷婷| 91亚洲国产成人精品一区二三| 欧美综合一区二区三区| 久久免费的精品国产v∧| 亚洲欧美日韩电影| 精品无人码麻豆乱码1区2区| www.成人在线| 欧美精品一区二区三区高清aⅴ| 欧美国产精品专区| 奇米在线7777在线精品| 91在线视频官网| 国产日韩三级在线| 久久爱www久久做| 欧美精品久久99久久在免费线 | 成人av在线播放网站| 欧美日韩国产美| 亚洲女同一区二区| 91丨九色丨蝌蚪丨老版| 久久精品视频在线免费观看| 天天亚洲美女在线视频| 日本高清成人免费播放| 国产精品久久免费看| 国产99久久久国产精品免费看 | 久久精品亚洲麻豆av一区二区| 亚洲午夜精品久久久久久久久| 国产盗摄精品一区二区三区在线| 欧美一区二区三区四区高清| 亚洲国产aⅴ天堂久久| 在线视频欧美区| 亚洲国产色一区| 欧美另类变人与禽xxxxx| 午夜精品福利一区二区蜜股av| 欧美午夜片在线看| 亚洲一区二区三区四区在线 | 欧美日韩不卡视频| 日韩一区精品字幕| 日韩精品一区二区三区四区| 久久精品999| 国产精品视频一二三| 91免费视频网| 一区二区三区四区高清精品免费观看| 91免费在线看| 日韩精品亚洲专区| 国产女同性恋一区二区| 91小宝寻花一区二区三区| 亚洲一区二区三区美女| 3d成人h动漫网站入口| 韩国三级电影一区二区| 中文字幕色av一区二区三区| 欧美日韩精品一区二区在线播放 | 在线免费观看日本一区| 日本va欧美va瓶| 成人欧美一区二区三区黑人麻豆| 在线视频欧美精品| 国产精品1区2区3区| 亚洲一区成人在线| 国产欧美精品一区| 欧美一级xxx| 欧美亚一区二区| 国产伦精品一区二区三区免费迷| 中文字幕在线不卡视频| 日韩你懂的在线观看| www.66久久| 国产白丝精品91爽爽久久| 午夜精品视频在线观看| 亚洲素人一区二区| 久久久亚洲国产美女国产盗摄 | 久久婷婷成人综合色| 精品视频在线免费看| 国产风韵犹存在线视精品| 丝袜脚交一区二区| 亚洲视频免费看| 久久久精品黄色| 亚洲免费观看在线观看| 欧美精品一区二区三| 制服丝袜激情欧洲亚洲| 欧美日韩激情在线| 欧美日韩亚洲国产综合| 色综合久久中文综合久久牛| 成人一区二区在线观看| 国产精品99久久久久久有的能看| 日韩精品久久理论片| 视频一区二区三区入口| 亚洲欧美日韩中文字幕一区二区三区| 欧美韩国日本不卡| 国产欧美日韩精品一区| 国产精品色呦呦| 国产精品久久久久aaaa| 国产精品国产三级国产三级人妇| 国产视频一区二区在线| 亚洲欧美在线另类| 一区二区免费在线播放| 日韩成人免费看| 久久国产夜色精品鲁鲁99| 国产精品中文欧美| 成人美女视频在线看| 在线精品国精品国产尤物884a | 91亚洲精品久久久蜜桃网站| 91老师片黄在线观看| 欧美精品自拍偷拍| 国产偷国产偷亚洲高清人白洁| 中文字幕日韩一区| 日韩av在线免费观看不卡| 国产一区视频在线看| 一本久久精品一区二区| 欧美一区二区福利在线| 国产精品少妇自拍| 午夜精品一区二区三区三上悠亚| 国产一区二区在线免费观看| 欧洲一区在线电影| 国产午夜精品久久久久久久| 午夜精品福利一区二区三区蜜桃| 国产综合久久久久久久久久久久| 欧美一级高清片| 亚洲人成网站色在线观看| 久久99精品国产麻豆婷婷| 91尤物视频在线观看| 久久久久久久久岛国免费| 午夜久久福利影院| 成人动漫中文字幕| 久久久亚洲欧洲日产国码αv| 亚洲国产综合视频在线观看| 国产69精品久久99不卡| 欧美一区二区三区日韩| 亚洲美女免费视频| av电影天堂一区二区在线| 日韩欧美国产一区二区三区| 亚洲国产精品一区二区www | 日韩精品中文字幕一区二区三区 | 欧美极品另类videosde| 青青草伊人久久| 91精品免费观看| 天堂成人免费av电影一区| 欧美日韩成人综合在线一区二区| 夜夜精品浪潮av一区二区三区| 一本色道亚洲精品aⅴ| 一区二区三区免费网站| 欧洲一区二区三区在线| 亚洲aⅴ怡春院| 91精品国产综合久久小美女| 欧美96一区二区免费视频| 欧美一区二区在线播放| 精品亚洲成a人在线观看| 日韩三区在线观看| 国产精品一区二区久激情瑜伽| 中文字幕av在线一区二区三区| 不卡的av在线播放| 午夜精品123| 国产欧美日韩三区| 色婷婷精品久久二区二区蜜臀av| 日本一区二区在线不卡| 91小视频免费观看| 日韩中文字幕亚洲一区二区va在线| 在线播放亚洲一区| 国产99一区视频免费| 亚洲图片有声小说| 国产日韩精品一区二区浪潮av| 99re热这里只有精品免费视频| 亚洲在线一区二区三区|