日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下基于Libmad库的MP3音乐播放器编写

發布時間:2025/3/20 linux 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下基于Libmad库的MP3音乐播放器编写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


linux下基于Libmad庫的MP3音樂播放器編寫


? ? ? ?libmad是一個開源mp3解碼庫,其對mp3解碼算法做了很多優化,性能較好,很多播放器如mplayer、xmms等都是使用這個開源庫進行解碼的;如果要設計mp3播放器而又不想研 ? ? ? ?究mp3解碼算法的話,libmad是個不錯的選擇。關于該庫的使用,敘述如下。


一:安裝Libmad:

? ?1、在網上下載:Libmad庫的使用.pdf文檔和libmad-0.15.lb.tar.gz壓縮包( http://down.51cto.com/data/1087041(免費下載))


? ?2、解壓:tar -zxvf libmad-0.15.lb.tar.gz


? ?以下過程在Readme和INSTALL文件中列了出來,應學會自己看選項進行操作:


? ?3、cd libmad-0.15.lb


? ?4、./configure


? ?5、make


? ?6、make check


? ?7、make install

? ?(若最后有錯誤信息,說明你用的gcc版本太高,該版本的gcc有"-fforce-mem"參數,打開根目錄下的Makefile去掉里面的"-fforce-mem"就OK了。)


? ?結果:產生一個 .libs 目錄


--------------------------------------------------------------------------------------------------------------————————————————

然后按照Libmad庫的使用.pdf文檔中的提示繼續往下進行。


二:查看示例代碼 minimad.c:


? ?minimad.c

/** libmad - MPEG audio decoder library* Copyright (C) 2000-2004 Underbit Technologies, Inc.** This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA** $Id: minimad.c,v 1.4 2004/01/23 09:41:32 rob Exp $*/ # include <stdio.h> # include <unistd.h> # include <sys/stat.h> # include <sys/mman.h> # include "mad.h" /** This is perhaps the simplest example use of the MAD high-level API.* Standard input is mapped into memory via mmap(), then the high-level API* is invoked with three callbacks: input, output, and error. The output* callback converts MAD's high-resolution PCM samples to 16 bits, then* writes them to standard output in little-endian, stereo-interleaved* format.*/ static int decode(unsigned char const *, unsigned long); int main(int argc, char *argv[]) {struct stat stat;void *fdm;if (argc != 1)return 1;if (fstat(STDIN_FILENO, &stat) == -1 ||stat.st_size == 0)return 2;fdm = mmap(0, stat.st_size, PROT_READ, MAP_SHARED, STDIN_FILENO, 0);if (fdm == MAP_FAILED)return 3;decode(fdm, stat.st_size);if (munmap(fdm, stat.st_size) == -1)return 4;return 0; } /** This is a private message structure. A generic pointer to this structure* is passed to each of the callback functions. Put here any data you need* to access from within the callbacks.*/ struct buffer {unsigned char const *start;unsigned long length; }; /** This is the input callback. The purpose of this callback is to (re)fill* the stream buffer which is to be decoded. In this example, an entire file* has been mapped into memory, so we just call mad_stream_buffer() with the* address and length of the mapping. When this callback is called a second* time, we are finished decoding.*/ static enum mad_flow input(void *data,struct mad_stream *stream) {struct buffer *buffer = data;if (!buffer->length)return MAD_FLOW_STOP;mad_stream_buffer(stream, buffer->start, buffer->length);buffer->length = 0;return MAD_FLOW_CONTINUE; } /** The following utility routine performs simple rounding, clipping, and* scaling of MAD's high-resolution samples down to 16 bits. It does not* perform any dithering or noise shaping, which would be recommended to* obtain any exceptional audio quality. It is therefore not recommended to* use this routine if high-quality output is desired.*/ static inline signed int scale(mad_fixed_t sample) {/* round */sample += (1L << (MAD_F_FRACBITS - 16));/* clip */if (sample >= MAD_F_ONE)sample = MAD_F_ONE - 1;else if (sample < -MAD_F_ONE)sample = -MAD_F_ONE;/* quantize */return sample >> (MAD_F_FRACBITS + 1 - 16); } /** This is the output callback function. It is called after each frame of* MPEG audio data has been completely decoded. The purpose of this callback* is to output (or play) the decoded PCM audio.*/ static enum mad_flow output(void *data,struct mad_header const *header,struct mad_pcm *pcm) {unsigned int nchannels, nsamples;mad_fixed_t const *left_ch, *right_ch;/* pcm->samplerate contains the sampling frequency */nchannels = pcm->channels;nsamples = pcm->length;left_ch = pcm->samples[0];right_ch = pcm->samples[1];while (nsamples--) {signed int sample;/* output sample(s) in 16-bit signed little-endian PCM */sample = scale(*left_ch++);putchar((sample >> 0) & 0xff);putchar((sample >> 8) & 0xff);if (nchannels == 2) {sample = scale(*right_ch++);putchar((sample >> 0) & 0xff);putchar((sample >> 8) & 0xff);}}return MAD_FLOW_CONTINUE; } /** This is the error callback function. It is called whenever a decoding* error occurs. The error is indicated by stream->error; the list of* possible MAD_ERROR_* errors can be found in the mad.h (or stream.h)* header file.*/ static enum mad_flow error(void *data,struct mad_stream *stream,struct mad_frame *frame) {struct buffer *buffer = data;fprintf(stderr, "decoding error 0x%04x (%s) at byte offset %u\n",stream->error, mad_stream_errorstr(stream),stream->this_frame - buffer->start);/* return MAD_FLOW_BREAK here to stop decoding (and propagate an error) */return MAD_FLOW_CONTINUE; } /** This is the function called by main() above to perform all the decoding.* It instantiates a decoder object and configures it with the input,* output, and error callback functions above. A single call to* mad_decoder_run() continues until a callback function returns* MAD_FLOW_STOP (to stop decoding) or MAD_FLOW_BREAK (to stop decoding and* signal an error).*/ static int decode(unsigned char const *start, unsigned long length) {struct buffer buffer;struct mad_decoder decoder;int result;/* initialize our private message structure */buffer.start = start;buffer.length = length;/* configure input, output, and error functions */mad_decoder_init(&decoder, &buffer,input, 0 /* header */, 0 /* filter */, output,error, 0 /* message */);/* start decoding */result = mad_decoder_run(&decoder, MAD_DECODER_MODE_SYNC);/* release the decoder */mad_decoder_finish(&decoder);return result; }


? ?編譯: gcc -o minimad minimad.c –lmad

? ?運行: ./minimad <test.mp3 >test.pcm



? ?以上是將:1、標準輸入重定向到MP3文件

? ? ? ? ? ? ?2、標準輸出重定向到解碼以后的 pcm 文件

? ?下面將pcm數據寫入音頻設備(即pcmplay.c程序):

? ? ? ( A.設備文件/dev/dsp

B.ioctl設置音頻屬性: ? ? (記得加<sys/soundcard.h>頭文件)

a.采樣格式

b.采樣頻率

c.聲道

C.將pcm文件寫入音頻設備)

? ?文檔中pcmplay.c程序中void writefully(int fd,void *buf,int size);函數未給出,下面已補全。


? ?pcmplay.c代碼:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <sys/ioctl.h> #include <string.h> #include <sys/soundcard.h> void writefully(int fd,void *buf,int size) {int n = write(fd,buf,size);if(n < 0){fprintf(stderr,"writefully error!",strerror(errno));exit(-1);} } int main(int argc, char *argv[]) {int handle, fd;char buf[1024];if (argc != 2){fprintf(stderr, "usage : %s \n", argv[0]);exit(-1);}if ((fd = open(argv[1], O_RDONLY)) < 0){fprintf(stderr, "Can't open sound file!\n");exit(-2);}if ((handle = open("/dev/dsp", O_WRONLY))<0){fprintf(stderr, "Can't open system file /dev/dsp!\n");exit(-2);}#if 1//設置聲道int channels = 2;int result = ioctl(handle, SNDCTL_DSP_CHANNELS, &channels);if ( result == -1 ){perror("ioctl channel number");return -1;}//設置采樣格式:AFMT_S16_LEint format = AFMT_S16_LE;result = ioctl(handle, SNDCTL_DSP_SETFMT, &format);if ( result == -1 ){perror("ioctl sample format");return -1;}//設置采樣頻率44.1//int rate = 22050;int rate = 44100;result = ioctl(handle, SNDCTL_DSP_SPEED, &rate);if ( result == -1 ){perror("ioctl sample format");return -1;}#endifint n;while((n=read(fd,buf,sizeof(buf)))){writefully(handle,buf,n);}close(fd);close(handle);exit(0); }

? ?編譯: gcc -o pcmplay pcmplay.c

? ?運行: ./pcmplay test.pcm


? ?如此即可先將.mp3文件整個解壓到.pcm文件中,再通過將.pcm文件寫入音頻設備進行.mp3音樂播放。

? ?下面簡易實現.mp3音樂文件的編解碼邊播放程序的編寫。



------------------------------------------------------------------------------------------------—————————————————————

三:編解碼邊播放,用Libmad設計一個簡單的MP3播放器:


? “Libmad庫的使用.pdf”文檔中MP3player.c程序有些許缺失或錯誤,現已改正,程序如下:


? ?MP3player.c

#include "mad.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> #include <sys/ioctl.h> #include <sys/soundcard.h> #define BUFSIZE 8192 /* * This is a private message structure. A generic pointer to this structure * is passed to each of the callback functions. Put here any data you need * to access from within the callbacks. */ struct buffer {FILE *fp; /*file pointer*/unsigned int flen; /*file length*/unsigned int fpos; /*current position*/unsigned char fbuf[BUFSIZE]; /*buffer*/unsigned int fbsize; /*indeed size of buffer*/ }; typedef struct buffer mp3_file; int soundfd; /*soundcard file*/ unsigned int prerate = 0; /*the pre simple rate*/ int writedsp(int c) {return write(soundfd, (char *)&c, 1); } void set_dsp() {int rate = 44100; // int rate = 96000;int format = AFMT_S16_LE;int channels = 2;int value;soundfd = open("/dev/dsp", O_WRONLY);ioctl(soundfd,SNDCTL_DSP_SPEED,&rate);ioctl(soundfd, SNDCTL_DSP_SETFMT, &format);ioctl(soundfd, SNDCTL_DSP_CHANNELS, &channels); /*value = 16;ioctl(soundfd,SNDCTL_DSP_SAMPLESIZE,&value);value = 0;ioctl(soundfd,SNDCTL_DSP_STEREO,&value); */ } /* * This is perhaps the simplest example use of the MAD high-level API. * Standard input is mapped into memory via mmap(), then the high-level API * is invoked with three callbacks: input, output, and error. The output * callback converts MAD's high-resolution PCM samples to 16 bits, then * writes them to standard output in little-endian, stereo-interleaved * format. */ static int decode(mp3_file *mp3fp); int main(int argc, char *argv[]) {long flen, fsta, fend;int dlen;mp3_file *mp3fp;if (argc != 2)return 1;mp3fp = (mp3_file *)malloc(sizeof(mp3_file));if((mp3fp->fp = fopen(argv[1], "r")) == NULL){printf("can't open source file.\n");return 2;}fsta = ftell(mp3fp->fp);fseek(mp3fp->fp, 0, SEEK_END);fend = ftell(mp3fp->fp);flen = fend - fsta;fseek(mp3fp->fp, 0, SEEK_SET);fread(mp3fp->fbuf, 1, BUFSIZE, mp3fp->fp);mp3fp->fbsize = BUFSIZE;mp3fp->fpos = BUFSIZE;mp3fp->flen = flen;set_dsp();decode(mp3fp);close(soundfd);fclose(mp3fp->fp);return 0; } /* * This is the input callback. The purpose of this callback is to (re)fill * the stream buffer which is to be decoded. In this example, an entire file * has been mapped into memory, so we just call mad_stream_buffer() with the * address and length of the mapping. When this callback is called a second * time, we are finished decoding. */ static enum mad_flow input(void *data, struct mad_stream *stream) {mp3_file *mp3fp;int ret_code;int unproc_data_size; /*the unprocessed data's size*/int copy_size;mp3fp = (mp3_file *)data;if(mp3fp->fpos <= mp3fp->flen){unproc_data_size = stream->bufend - stream->next_frame;memcpy(mp3fp->fbuf, mp3fp->fbuf+mp3fp->fbsize-unproc_data_size, unproc_data_size);copy_size = BUFSIZE - unproc_data_size;if(mp3fp->fpos + copy_size > mp3fp->flen){copy_size = mp3fp->flen - mp3fp->fpos;}fread(mp3fp->fbuf+unproc_data_size, 1, copy_size, mp3fp->fp);mp3fp->fbsize = unproc_data_size + copy_size;mp3fp->fpos += copy_size;/*Hand off the buffer to the mp3 input stream*/mad_stream_buffer(stream, mp3fp->fbuf, mp3fp->fbsize);ret_code = MAD_FLOW_CONTINUE;}else{ret_code = MAD_FLOW_STOP;}return ret_code; } /* * The following utility routine performs simple rounding, clipping, and * scaling of MAD's high-resolution samples down to 16 bits. It does not * perform any dithering or noise shaping, which would be recommended to * obtain any exceptional audio quality. It is therefore not recommended to * use this routine if high-quality output is desired. */ static inline signed int scale(mad_fixed_t sample) {/* round */sample += (1L <= MAD_F_FRACBITS - 16);if(sample >= MAD_F_ONE)sample = MAD_F_ONE - 1;else if(sample < -MAD_F_ONE)sample = -MAD_F_ONE;return sample >> (MAD_F_FRACBITS + 1 - 16); } /* * This is the output callback function. It is called after each frame of * MPEG audio data has been completely decoded. The purpose of this callback * is to output (or play) the decoded PCM audio. */ static enum mad_flow output(void *data, struct mad_header const *header, struct mad_pcm *pcm) {unsigned int nchannels, nsamples;unsigned int rate;mad_fixed_t const *left_ch, *right_ch;/* pcm->samplerate contains the sampling frequency */rate = pcm->samplerate;nchannels = pcm->channels;nsamples = pcm->length;left_ch = pcm->samples[0];right_ch = pcm->samples[1];/* update the sample rate of dsp*/if(rate != prerate){ioctl(soundfd, SNDCTL_DSP_SPEED, &rate);prerate = rate;}while (nsamples--){signed int sample;/* output sample(s) in 16-bit signed little-endian PCM */sample = scale(*left_ch++);writedsp((sample >> 0) & 0xff);writedsp((sample >> 8) & 0xff);if (nchannels == 2){sample = scale(*right_ch++);writedsp((sample >> 0) & 0xff);writedsp((sample >> 8) & 0xff);}}return MAD_FLOW_CONTINUE; } /* * This is the error callback function. It is called whenever a decoding * error occurs. The error is indicated by stream->error; the list of * possible MAD_ERROR_* errors can be found in the mad.h (or stream.h) * header file. */ static enum mad_flow error(void *data, struct mad_stream *stream, struct mad_frame *frame) {mp3_file *mp3fp = data;fprintf(stderr, "decoding error 0x%04x (%s) at byte offset %u\n",stream->error, mad_stream_errorstr(stream),stream->this_frame - mp3fp->fbuf);/* return MAD_FLOW_BREAK here to stop decoding (and propagate an error) */return MAD_FLOW_CONTINUE; } /* * This is the function called by main() above to perform all the decoding. * It instantiates a decoder object and configures it with the input, * output, and error callback functions above. A single call to * mad_decoder_run() continues until a callback function returns * MAD_FLOW_STOP (to stop decoding) or MAD_FLOW_BREAK (to stop decoding and * signal an error). */ static int decode(mp3_file *mp3fp) {struct mad_decoder decoder;int result;/* configure input, output, and error functions */mad_decoder_init(&decoder, mp3fp,input, 0 /* header */, 0 /* filter */, output,error, 0 /* message */);/* start decoding */result = mad_decoder_run(&decoder, MAD_DECODER_MODE_SYNC);/* release the decoder */mad_decoder_finish(&decoder);return result; }



? ?編譯:gcc -o mp3player MP3player.c -lmad

? ?運行:./mp3player xxx.mp3

? ?至此,一個簡易MP3播放器就寫好了。


? ?程序已親自驗證,請放心閱覽。如有錯誤,歡迎批評指正。


? ?享受陽光,享受生活。愿與大家共同進步。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --刀刀











轉載于:https://blog.51cto.com/weiyuqingcheng/1362179

總結

以上是生活随笔為你收集整理的Linux下基于Libmad库的MP3音乐播放器编写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

av视屏在线| 97精产国品一二三产区在线 | 日韩视频免费在线 | 国产激情免费 | 亚洲码国产日韩欧美高潮在线播放 | 日韩欧美精品免费 | 一级做a爱片性色毛片www | 欧美 国产 视频 | 国产丝袜一区二区三区 | 婷婷国产一区二区三区 | 开心色激情网 | 日本不卡视频 | 国产一区二区视频在线 | 综合激情av| 播五月婷婷 | 国产真实在线 | 三级免费黄 | 99视| 日韩精品免费一区 | 免费大片黄在线 | 精品国产乱码久久久久久三级人 | 日韩动态视频 | 91大神在线观看视频 | 国产午夜精品免费一区二区三区视频 | 欧洲精品视频一区二区 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 国产一区二区精 | 92中文资源在线 | 国产精品女同一区二区三区久久夜 | 在线观看国产永久免费视频 | 欧美日韩中文视频 | 亚洲精品乱码久久久久久9色 | 欧美一级在线看 | 久久久久亚洲精品中文字幕 | 国产一级片一区二区三区 | 午夜天使| 欧美一区二区三区免费观看 | 美女网站视频久久 | 天堂在线一区二区 | 国产99视频在线观看 | 伊人色**天天综合婷婷 | 97超碰.com| 国产高清在线免费观看 | 国产视频一区二区在线播放 | 婷婷六月中文字幕 | 久久久国产精品视频 | 在线亚洲成人 | 成人在线小视频 | 麻豆av一区二区三区在线观看 | 成人黄色大片网站 | 久久激五月天综合精品 | 亚洲精品在线视频 | 亚洲丝袜一区二区 | 91精品国产乱码久久桃 | 国产91精品看黄网站 | 日本精品久久久久 | 99r在线视频 | 国产精品久久久久久久久久妇女 | 国产在线a免费观看 | 亚洲九九精品 | 一本一本久久a久久精品牛牛影视 | 日本精品视频在线观看 | 精品久久九九 | www.五月婷| 色视频在线 | 亚洲日本精品 | 日韩特级毛片 | 日韩在线一区二区免费 | 国产日产精品一区二区三区四区 | 国产午夜一级毛片 | 欧美性脚交 | 高清精品久久 | 久久综合久久久久88 | 久久精品观看 | 亚洲一区二区观看 | 亚洲 欧美 国产 va在线影院 | 国产尤物在线观看 | 久久免费资源 | 国产999视频在线观看 | 99 视频 高清| 成人在线观看资源 | 免费看污的网站 | 色视频网址 | 日日夜夜草 | 婷婷色九月 | 91大神视频网站 | 精品久久中文 | www亚洲国产| 视频在线一区二区三区 | 亚洲高清在线视频 | 欧美日韩国产成人 | 久草网在线观看 | 一区二区中文字幕在线观看 | 在线免费日韩 | 国产在线1区 | 中文字幕超清在线免费 | 免费av在线播放 | 亚洲天堂网视频在线观看 | 夜夜夜夜夜夜操 | 91高清在线 | 国产精品一区二 | 干干操操| 免费国产在线观看 | 人人爽久久久噜噜噜电影 | 精品久久九九 | 久久五月精品 | 亚洲免费在线视频 | 99久久久久成人国产免费 | 九九九九九国产 | 久久精品国产久精国产 | 国产一区二区三区免费在线 | 在线观看国产永久免费视频 | 亚洲干 | 婷婷新五月 | 亚洲精品国偷拍自产在线观看蜜桃 | 日本xxxx.com | 免费在线播放av电影 | 五月开心色 | 天天操天天操天天操天天操天天操 | 美女网站在线观看 | 成人黄色片在线播放 | 亚洲天堂网在线视频观看 | 超碰人人av| 久久成人毛片 | 国产高清视频在线免费观看 | 欧美a视频在线观看 | av电影免费在线 | 99精品在线免费视频 | 精品久久久免费 | 日韩午夜小视频 | 亚洲无吗视频在线 | 日韩在线电影观看 | 91中文在线| 99精品在线视频观看 | 五月婷综合 | 久久精品黄 | 亚洲激情小视频 | 狠狠色丁香久久婷婷综合丁香 | 97在线精品国自产拍中文 | 麻豆影视网 | 天天射天天操天天色 | 亚洲一区二区三区四区在线视频 | 久久婷婷国产色一区二区三区 | 欧洲视频一区 | 亚洲欧美日韩一区二区三区在线观看 | 国产精品黄色在线观看 | 国产在线精品一区二区不卡了 | 在线观看视频黄色 | 久草影视在线 | 美女网站视频色 | 国产一级做a | 日韩av一区二区在线 | 成人在线一区二区 | 久久久久高清 | 日韩色一区二区三区 | 在线影院 国内精品 | 人人网av| 欧美一级电影免费观看 | 成人午夜在线电影 | 韩日精品在线 | 亚洲电影院| 国产日韩精品一区二区在线观看播放 | 国产精品18久久久久久vr | 国产日韩精品在线 | 国产精品系列在线观看 | 国偷自产视频一区二区久 | 日韩精品一二三 | 在线视频欧美日韩 | 久久久久久久久精 | 国产91综合一区在线观看 | 揉bbb玩bbb少妇bbb| 中文字幕免费高 | 日韩在线观看影院 | 91爱看片 | 天天射网| 中文在线亚洲 | 激情综合网在线观看 | 国产一区二区免费 | 久久免费视频在线观看 | 9在线观看免费 | 色狠狠一区二区 | 欧美日韩国产一区二区在线观看 | 91成人精品一区在线播放69 | 成人小电影在线看 | 日韩一区二区三区免费视频 | 精品亚洲男同gayvideo网站 | 亚洲一区二区三区毛片 | 日韩中午字幕 | 在线观看国产高清视频 | 日韩精品中文字幕在线 | 亚洲欧洲美洲av | 中文字幕在线乱 | 在线视频18在线视频4k | 国内精品久久久久久中文字幕 | 久草视频免费观 | 日韩欧美大片免费观看 | 91免费高清在线观看 | 一级黄色片在线观看 | 久草在线在线视频 | 中文字幕日韩在线播放 | 四虎影视成人永久免费观看视频 | 亚洲一级片在线观看 | 欧美精品成人在线 | 玖玖玖在线 | 亚洲精品久久久蜜臀下载官网 | 色七七亚洲影院 | 精品一区 在线 | 日韩精品一区二区三区视频播放 | 91成人看片| 在线av资源 | 99这里只有精品99 | 国产69熟 | 久久 一区 | 欧美 日韩 性 | 久久久久国产a免费观看rela | 91在线亚洲 | 中日韩免费视频 | 五月天电影免费在线观看一区 | 欧美日本高清视频 | 九九爱免费视频 | 国产精品久久久久久久久久久久午 | 9久久精品 | 亚洲免费在线视频 | 欧美日韩精品久久久 | 日本视频高清 | 99热手机在线观看 | 亚洲精品国偷自产在线99热 | 国产精品3| av丁香 | 日日夜夜精品视频天天综合网 | 99久久婷婷国产一区二区三区 | 久草视频免费在线播放 | 九九热在线精品 | 俺要去色综合狠狠 | 国产91全国探花系列在线播放 | 91精品视频一区二区三区 | 欧美激情综合色综合啪啪五月 | 草免费视频 | 日韩在线不卡视频 | 黄色电影在线免费观看 | 草久久久久 | 国产精品国产三级国产不产一地 | 国产专区一 | 久久精品影片 | 超碰在线人人草 | av怡红院 | 国产精品四虎 | 国产亚洲精品免费 | 国产录像在线观看 | 国产97在线视频 | 精品国产日本 | 欧美少妇xx| 日日夜夜天天久久 | 亚洲一区二区黄色 | 亚洲欧美激情精品一区二区 | 久久9999久久 | 国产精品久久久久久久免费大片 | 欧美日韩久久久 | 超碰午夜| 久久成人毛片 | 日本中文字幕在线看 | 一级性视频 | www.天天干| 成人在线免费看视频 | 91精品在线视频观看 | 国产黑丝一区二区三区 | 亚洲精品免费在线播放 | 久久激情小说 | 免费高清在线观看成人 | 国产一级在线免费观看 | 97国产视频| 国内精品久久久久久久影视简单 | 麻豆视频在线免费 | 午夜影视剧场 | 日韩av成人在线 | 日韩在线视频免费播放 | 亚洲精品在线免费播放 | 亚洲视屏| 日韩黄色影院 | 中文字幕专区高清在线观看 | 亚洲成av人影院 | 久久久久久久久国产 | 最近中文字幕高清字幕在线视频 | 99免费在线观看视频 | 色亚洲网 | 午夜精品福利在线 | 成年人在线视频观看 | 中文字幕 在线 一 二 | 日本公妇色中文字幕 | 成人在线观看免费 | 久久一区二区三区四区 | 久久综合久久久久88 | 欧美色图p| 中文字幕在线日本 | 超碰在线公开 | 久久久久免费视频 | 国产精品入口久久 | 一区二区三区电影在线播 | 99精彩视频 | 奇米777777 | 久久影院午夜论 | 激情小说网站亚洲综合网 | 日韩av影视在线 | 五月婷婷六月丁香 | 99视频在线精品免费观看2 | 亚洲国产午夜精品 | 国产午夜精品一区二区三区欧美 | 国产一级视频在线 | 国产系列 在线观看 | 免费看的黄色片 | 天天人人综合 | 有码中文字幕 | 国产精成人品免费观看 | 日日夜夜天天射 | 久久国内精品视频 | 免费成人av在线 | 久久激情视频 久久 | 天天曰夜夜爽 | 久久久久久久国产精品视频 | 国内精品久久久久影院一蜜桃 | 国产又粗又硬又爽的视频 | 人人草在线视频 | 婷婷色综| 免费观看版 | 久久国产经典 | 三日本三级少妇三级99 | 国产精品激情 | 久久精品视频在线观看免费 | 国产高清久久 | 涩涩爱夜夜爱 | 黄毛片在线观看 | 在线观看黄网站 | 亚洲精品国产欧美在线观看 | 久久久久久久看片 | 色婷婷狠 | 奇米777777| 国产高清99 | 精品婷婷 | 亚洲劲爆av | 成人国产精品久久久久久亚洲 | 九九热精品在线 | 国产精品免费成人 | 91成人短视频在线观看 | 久久不射网站 | 日韩v在线91成人自拍 | 午夜精品一区二区三区在线 | 黄色的网站免费看 | 日本最新中文字幕 | 操高跟美女 | 久久艹免费| 欧美日韩在线观看不卡 | 99情趣网视频| 亚洲欧美在线观看视频 | 国产精品久久久久永久免费 | 日本久久91 | 三级黄在线 | 欧美一区二区三区在线视频观看 | 亚洲国产色一区 | 91av电影 | 免费又黄又爽视频 | 亚洲一区二区视频 | 九九在线高清精品视频 | 久久精品9 | 精品在线99| 精品嫩模福利一区二区蜜臀 | 在线你懂的视频 | 在线观看免费高清视频大全追剧 | 免费视频久久久久久久 | 三级毛片视频 | 97超级碰碰 | 中文字幕在线播出 | 操久 | 精品国产不卡 | 精品久久久久久国产 | 国产99久久久久久免费看 | 天天干人人插 | 国产精品不卡视频 | 最近中文字幕 | 久久久99国产精品免费 | a v在线观看| 丁香久久激情 | 国内精品小视频 | 91九色蝌蚪国产 | 亚洲国产视频在线 | 色综合久 | 日韩.com | 丁香婷婷综合激情五月色 | 日韩一区二区在线免费观看 | 在线免费高清一区二区三区 | 蜜臀aⅴ国产精品久久久国产 | 色在线中文字幕 | 精品亚洲国产视频 | 亚洲综合视频在线 | 国产在线精 | av中文电影 | 久久久久久久久久久免费av | 欧美日韩久久不卡 | 日韩精品 在线视频 | 国产成人一区二区三区免费看 | 欧美日韩p片| 香蕉97视频观看在线观看 | 亚洲一区免费在线 | 91成人精品 | 亚洲午夜久久久久久久久电影网 | 成年人在线免费看 | 欧美精品久久久久久久久久丰满 | 久久婷婷一区 | 免费激情网 | 蜜臀久久99精品久久久酒店新书 | 国产精品视频在线看 | 国产精品粉嫩 | 久久久久久久久久久黄色 | 日韩成人中文字幕 | 欧美性成人 | 欧美亚洲一区二区在线 | 国产日韩精品一区二区三区在线 | 日韩免费视频在线观看 | 日韩中文在线观看 | 亚洲成a人片77777kkkk1在线观看 | 久久精品久久久久久久 | av成人在线观看 | 久九视频| 久久久免费视频播放 | 久久久久久久国产精品影院 | 亚洲视频一区二区三区在线观看 | 中文字幕精品一区久久久久 | 久草精品视频在线观看 | 波多野结衣最新 | 午夜精品久久一牛影视 | 久久久久久久国产精品视频 | 2019免费中文字幕 | 深爱婷婷久久综合 | 久久久久免费精品国产小说色大师 | 国产一区二区在线免费播放 | 99久久精品费精品 | 久久美女免费视频 | 奇米影视8888在线观看大全免费 | 亚州精品成人 | 91九色在线观看 | 久久噜噜少妇网站 | 欧美激情第一区 | 中文字幕国语官网在线视频 | 亚洲精品午夜久久久久久久久久久 | 国产成人一区二区啪在线观看 | 日韩视频在线播放 | 国内精品久久久久久久影视麻豆 | 国产夫妻av在线 | 国产精品a成v人在线播放 | 2019中文最近的2019中文在线 | 国产精品一区一区三区 | 岛国av在线| 婷婷六月天天 | 国产精品毛片久久久久久 | 久久免费福利视频 | 欧美污在线观看 | 中文av资源站| 四虎在线免费视频 | 精品色综合 | 亚洲成a人片在线观看网站口工 | 丁香婷五月| 国产乱对白刺激视频在线观看女王 | 99久热在线精品 | 免费观看全黄做爰大片国产 | 黄色大全免费观看 | 天天视频亚洲 | 黄色1级大片 | 国产麻豆成人传媒免费观看 | 国产啊v在线 | 人人爽人人澡 | 欧美一级久久 | 精品亚洲免费视频 | 少妇bbbb揉bbbb日本 | 国产精品女人久久久 | 96精品视频| 成人综合婷婷国产精品久久免费 | 精品国产理论片 | 极品嫩模被强到高潮呻吟91 | 午夜电影久久久 | 色婷婷视频在线 | 日日天天狠狠 | 国产99中文字幕 | 亚洲狠狠操 | 久久欧美视频 | 日韩一区在线播放 | 免费av视屏 | 综合天堂av久久久久久久 | 国产中文字幕视频 | 2018好看的中文在线观看 | 久久精品韩国 | 色婷婷播放| 黄色三级免费观看 | 天天插伊人 | 中文字幕美女免费在线 | 国产经典av| 亚洲欧美国产精品18p | 天堂av免费看 | 亚洲天堂网站视频 | 日韩欧美视频免费观看 | 久久99久久精品国产 | 久久爱资源网 | 欧美色综合久久 | 69国产盗摄一区二区三区五区 | 国产在线资源 | 成人在线观看影院 | 国产精品成人一区二区三区吃奶 | 97天天综合网 | 国产日韩视频在线观看 | 五月天com | 亚洲精品综合在线 | 精品国产一区二区三区久久影院 | 一区二区三区高清 | 天天色天天操综合网 | 午夜精品久久久久久久久久久 | 日韩精品中文字幕在线不卡尤物 | 国产色道| 久精品一区 | 粉嫩一区二区三区粉嫩91 | 九九九热精品免费视频观看 | 国产精品久久久久久久久久免费看 | 国产精品久久在线 | 黄色一级大片在线观看 | 粉嫩av一区二区三区四区五区 | 欧美一二区视频 | 久久r精品 | 中文字幕在线字幕中文 | 黄色亚洲在线 | 一本一本久久a久久精品综合妖精 | 婷婷色在线观看 | 中文字幕在线资源 | 久久精品9 | 国产精品久久久久久久久久久久久 | 欧美色插 | 国产日韩在线观看一区 | 久久 地址 | 久久久久久免费毛片精品 | 天天射天 | 99久久www| 91丨九色丨91啦蝌蚪老版 | 片网址| 丁香婷婷综合激情 | 久久综合久久伊人 | 色多多污污| 国产精品夜夜夜一区二区三区尤 | 日韩中文字幕在线不卡 | 激情婷婷亚洲 | 国产精品成久久久久三级 | 米奇影视7777 | 国产我不卡 | 六月色婷婷 | 亚洲欧洲xxxx | 日日干,天天干 | 国产淫片免费看 | 久久影视网 | 国产自在线观看 | 国产三级av在线 | 99精品99 | 日韩专区视频 | 91喷水 | 美女视频黄,久久 | 夜夜爽www | 99久久精品免费看国产一区二区三区 | 国产精品视频免费在线观看 | 草樱av| 国产成人在线播放 | 人人射人人插 | 亚洲一级片在线观看 | 伊人五月在线 | 免费在线观看不卡av | 正在播放一区 | 五月天婷婷丁香花 | 久久超级碰| 久久综合给合久久狠狠色 | 欧美国产日韩一区二区三区 | 久久中文欧美 | 四虎在线视频免费观看 | 91精品一区二区三区蜜臀 | 日韩中文字幕免费 | 国产免费嫩草影院 | 欧美不卡视频在线 | 91网页版在线观看 | 国产欧美日韩视频 | 久久久久黄| 色婷婷亚洲婷婷 | 国产精品久久久久久超碰 | 在线免费观看视频你懂的 | 日日操夜| 99热精品久久 | 国产最新精品视频 | 日韩在线视频在线观看 | 国产一二区视频 | 国产精品精品久久久久久 | 在线国产中文字幕 | 日批视频 | 精品一区二区在线看 | 欧美精品在线免费 | 狠狠躁夜夜a产精品视频 | 不卡的av| 欧美日韩国产网站 | 久久综合欧美 | 日韩高清在线观看 | 免费看黄色大全 | 色综合久久66| 黄色免费视频在线观看 | 久久精品女人毛片国产 | 国产精品6999成人免费视频 | 免费观看www小视频的软件 | 久久精品99国产国产精 | 中文av在线播放 | 日韩一级电影在线观看 | 韩国三级一区 | 91视频黄色| 色网站在线观看 | 97国产大学生情侣酒店的特点 | 精品国产欧美 | 中文字幕乱在线伦视频中文字幕乱码在线 | 五月开心六月伊人色婷婷 | 欧美成年网站 | 中文字幕乱视频 | 免费在线观看污 | 欧美视频18| 日日爽天天爽 | 欧美人牲 | 麻豆系列在线观看 | 97香蕉视频| www色婷婷com| 99精品久久久久久久久久综合 | 亚洲伊人成综合网 | 免费看黄的视频 | 日本精品一区二区三区在线播放视频 | 久草精品视频 | 免费高清无人区完整版 | 中文av在线天堂 | 色婷婷午夜 | av在线一级 | 一级免费观看 | 在线观看91av | 天天射成人| 五月婷香蕉久色在线看 | 就色干综合 | 中国美女一级看片 | 丁香综合激情 | 日韩在线第一 | 欧美一级电影在线观看 | 久草视频资源 | 国产日韩在线观看一区 | 久草在线视频首页 | 欧美色插 | 精品一区二区在线免费观看 | 日韩精品欧美视频 | 中文字幕在线播出 | 天天射天天色天天干 | 91av在线精品 | 欧美激情视频在线免费观看 | 免费在线黄色av | 51久久夜色精品国产麻豆 | av福利在线看 | 一区二区三区在线不卡 | 欧美综合久久久 | av免费观看网站 | 国产成人三级三级三级97 | 午夜免费视频网站 | 亚洲精品毛片一级91精品 | 成年人视频免费在线播放 | 人人爽人人澡人人添人人人人 | 激情五月视频 | 久草视频在线新免费 | 亚洲人人射 | 欧美国产日韩在线视频 | 免费看污污视频的网站 | 成年美女黄网站色大片免费看 | 久久精品一区二区三区中文字幕 | 久久精品国产免费看久久精品 | 日韩大片在线免费观看 | 91麻豆视频网站 | 国产亚洲成av人片在线观看桃 | 91精品国产一区 | 成人在线免费观看视视频 | 日韩在线高清免费视频 | 欧美国产在线看 | 久久精品站| 亚洲精品乱码久久久久久久久久 | 中文字幕在线观看2018 | 天堂久久电影网 | 在线观看麻豆av | 啪啪资源 | 黄污在线看 | 深夜国产福利 | 色99色| 久久成人精品电影 | 久久精品2| 日韩高清在线一区 | 亚洲在线精品 | 狠狠色狠狠色综合日日小说 | 黄色片视频免费 | 免费97视频 | 97色噜噜 | 久久99精品一区二区三区三区 | 天天干,天天插 | 成人cosplay福利网站 | 91久久国产综合精品女同国语 | 国产午夜精品视频 | 日韩av快播电影网 | 欧美日韩视频免费看 | 国产精品1024| 久久r精品 | 国产精品一区在线观看 | 婷婷网址 | 一区二区精品在线 | 免费成视频 | 月丁香婷婷 | 国产精品麻豆一区二区三区 | 在线观看国产麻豆 | ww视频在线观看 | 99精品在线观看 | 久草精品视频在线观看 | 免费观看成人网 | 右手影院亚洲欧美 | 色婷婷精品大在线视频 | 精品你懂的 | 91人网站 | 国产在线97 | 国产小视频在线播放 | 久久美女高清视频 | 天天碰天天操视频 | 亚洲精品成人网 | 在线成人中文字幕 | 91麻豆精品国产91久久久久久 | 五月天堂色 | 色综合五月天 | 国产很黄很色的视频 | 麻豆激情电影 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 中国美女一级看片 | 狠狠操夜夜操 | 精品国产伦一区二区三区 | 免费成人av电影 | 天天干天天干天天干天天干天天干天天干 | 91传媒在线观看 | 中文字幕乱码日本亚洲一区二区 | 成人午夜精品福利免费 | 日韩免费播放 | 国产精品欧美一区二区 | 国产99中文字幕 | 黄色在线免费观看网址 | 日韩午夜av | 亚洲无人区小视频 | 成人福利在线播放 | 午夜久久电影网 | 欧美一级免费高清 | av成人黄色| 国产呻吟在线 | 日韩精品在线免费播放 | 麻豆精品视频 | 国产黄a三级 | 色五丁香 | 国产三级精品在线 | 日韩中文字幕国产 | 激情欧美一区二区三区免费看 | 天天天天爱天天躁 | 国产精品不卡在线 | 91大神dom调教在线观看 | 91精品国自产在线偷拍蜜桃 | 欧洲色综合 | 一区二区三区不卡在线 | 亚洲精品动漫成人3d无尽在线 | 久久高清免费视频 | 色婷婷99 | 日韩精品播放 | 中文字幕国语官网在线视频 | 色婷婷综合久久久中文字幕 | 久久高清 | 亚洲精品久久久蜜桃直播 | 人人超碰人人 | 国产精品不卡在线播放 | 亚洲视频免费在线观看 | 91麻豆文化传媒在线观看 | 色丁香久久 | 99婷婷狠狠成为人免费视频 | 亚洲综合黄色 | 免费在线观看的av网站 | 亚洲 欧美 国产 va在线影院 | 成人在线视频在线观看 | 亚洲 欧美 成人 | 欧美天天综合网 | 13日本xxxxxⅹxxx20 | 丝袜少妇在线 | 精品国模一区二区 | 中文字幕91 | 久草在线视频国产 | 色综合天天色综合 | 欧美日本在线观看视频 | 香蕉视频4aa | 在线观看亚洲 | 综合网成人 | 五月婷婷六月丁香 | 黄色视屏免费在线观看 | 黄色日本免费 | 97在线精品 | 国产精品18videosex性欧美 | 亚洲精品视频一二三 | www.日韩免费 | 国产精品亚洲精品 | 9999免费视频| 日韩中文字幕在线 | 99中文字幕在线观看 | 69av在线播放 | 久久视 | 99视频偷窥在线精品国自产拍 | 国内久久视频 | 国产一级做a | 91亚色视频 | 91麻豆精品国产自产在线 | 欧美日本一二三 | 精品一区在线看 | 国产色在线,com | 欧美一区日韩精品 | 国产剧情一区二区 | 日韩视频免费在线观看 | 91传媒免费在线观看 | 久久久久成人精品亚洲国产 | 天天干,夜夜爽 | 日韩av在线资源 | 天天摸天天弄 | 日韩av在线免费看 | 91在线免费观看国产 | 在线观看视频免费播放 | 国产 字幕 制服 中文 在线 | 日韩精品一区二区不卡 | 日本中文在线 | 成人免费在线观看av | 国产一区二区在线免费观看 | 国产亚洲成av人片在线观看桃 | 久草在线视频在线观看 | 综合色综合色 | 97在线资源 | 天天射,天天干 | 91插插视频 | 久草视频在线播放 | 91精彩视频 | 最新av在线免费观看 | 国内精品久久久久影院优 | 五月婷婷综合色拍 | 日本精品久久久一区二区三区 | 天天爽人人爽 | 久久久综合九色合综国产精品 | 人人看人人爱 | 亚洲精品456在线播放第一页 | 天天色天天草天天射 | 久久久久久久久久影视 | 亚洲综合色网站 | 国产精品白浆视频 | 中文字幕在线观看免费高清完整版 | 久久草av | 日日夜夜综合网 | mm1313亚洲精品国产 | 亚洲免费av一区二区 | 超碰人人在 | 欧美成年性 | 色综合久久久久综合99 | 免费看片色 | 人人爽人人| 黄免费在线观看 | 在线观看深夜福利 | 日本精品视频免费 | 国产精品久久久网站 | 婷婷综合av | 久久久精品成人 | 最近日本韩国中文字幕 | 久久视屏网 | 在线之家免费在线观看电影 | 中文字幕资源网在线观看 | 精品久久久久久国产 | 人人干网| 久久精品艹| 国产黄色片一级 | 国产精品久久久久久久久久东京 | 国产999免费视频 | av电影免费在线播放 | 91亚色视频在线观看 | 黄色小视频在线观看免费 | 日韩黄在线观看 | 婷婷综合电影 | 日本成人中文字幕在线观看 | 黄色看片 | av动态图片 | 免费高清在线观看电视网站 | 午夜丁香视频在线观看 | 激情久久久久久久久久久久久久久久 | 日本最新一区二区三区 | 免费看片成人 | 女人18毛片a级毛片一区二区 | 欧美色图亚洲图片 | 狠狠亚洲| 国产成人精品午夜在线播放 | 日韩二级毛片 | 国产精品99在线播放 | 天天做天天爱天天综合网 | 免费av观看网站 | 亚洲极色| 免费观看一级视频 | 亚洲第一中文字幕 | 亚洲jizzjizz日本少妇 | 天天干天天操天天 | 8x8x在线观看视频 | 天天伊人网 | 日日夜夜av| 99精品热视频 | 欧洲色综合 | 正在播放五月婷婷狠狠干 | 欧美专区国产专区 | av片子在线观看 | 99福利影院 | av高清免费 | а中文在线天堂 | 三级av中文字幕 | 成人资源在线 | 欧美黑吊大战白妞欧美 | 五月天综合网站 | 久久资源在线 | 亚洲欧美观看 | 在线 精品 国产 | 久久不射影院 | 国产高清视频网 | 成人av免费在线看 | 中文字幕视频网站 | 久草电影免费在线观看 | 日韩精品久久久久久久电影99爱 | 97影视| 欧美污污网站 | 久久精品欧美一区二区三区麻豆 | 免费在线观看成年人视频 | 国产在线观看午夜 | 天天操天天是 | 国产精品美女久久久久久 | 日韩免费电影在线观看 | 成年人视频在线观看免费 | 麻花豆传媒一二三产区 | 日本三级久久 | 一区二区三区精品久久久 | 久久午夜色播影院免费高清 | 亚洲视屏 | 一区二区三区视频 | 国产日产亚洲精华av | 三级黄色片子 | 国内精品久久久久影院一蜜桃 | 九九视频精品在线 | 久久8精品| 亚洲精品久久久久中文字幕m男 | 91久久奴性调教 | 国产成人久久精品一区二区三区 | 久久国产精品99久久久久久老狼 | 高清一区二区 | 免费成人在线视频网站 | 欧美日韩一区二区三区免费视频 | 国产黄色精品在线观看 | www.天天干 | 久久国产精品99久久久久久进口 | av免费看在线 | 麻豆久久一区二区 | 午夜婷婷在线观看 | 国产精品久久久久久久免费大片 | 亚洲黄色三级 | 国产精品久久久久久电影 | 99免费| 日本精品一区二区三区在线观看 | 亚洲国产欧美在线看片xxoo | 精品国产乱码久久久久久三级人 | 激情久久影院 | 成年人免费看的视频 | 精品国偷自产在线 | 亚洲日本va午夜在线电影 | 又黄又爽又刺激视频 | 黄色av观看 | 亚洲综合色视频在线观看 | 又黄又爽又无遮挡免费的网站 | 黄色在线成人 | 精品久久国产 | 丁香婷婷色综合亚洲电影 | 国产精品99久久久久 | 日日操日日操 | 特级西西444www大胆高清无视频 | 五月天色综合 | 免费在线一区二区三区 | 探花在线观看 | 精油按摩av | 黄色av电影网 | av大片免费 | 国内精品视频在线播放 | 狠狠狠狠狠狠天天爱 | 中文字幕在线免费97 | 日韩在线小视频 | 国产人成精品一区二区三 | 97国产在线视频 | 狠狠色丁香婷婷综合久小说久 | 日韩理论片在线观看 | 黄色精品一区二区 | 中文字幕最新精品 | 日韩中午字幕 |