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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(原创)speex与wav格式音频文件的互相转换(二)

發布時間:2024/4/15 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (原创)speex与wav格式音频文件的互相转换(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前寫過了如何將speex與wav格式的音頻互相轉換,如果沒有看過的請看一下連接

http://www.cnblogs.com/dongweiq/p/4515186.html

雖然自己實現了相關的壓縮算法,但是發現還是與gauss的壓縮比例差了一些,一部分是參數設置的問題,另外一部分是沒有使用ogg的問題。

本來想研究一下gauss的ogg算法,然后將他錄制的音頻轉為wav格式,再繼續進行后面的頻譜繪制之類的。

在后續的研究gauss的解碼過程,他是先解了ogg的格式,然后分段,然后去掉speex的頭,然后把一段段的speex數據再解碼成pcm的原數據,最后使用audiotrack一段段播放出來了。audiotrack播放的時候是阻塞的,所以播了多久就解了多久。

既然他得到了一段段pcm的原數據,那我就可以去將這一段段的原數據拼起來,最后得到解碼完成的整個的pcm數據,最后加上wav的頭不就可以直接轉換成wav格式的音頻了么???

前天的時候想到這里,立馬就去改了。

SpeexDecoder是gauss的demo里主要的解碼類,我們復制一份,改名為SpeexFileDecoder

去掉里面跟播放相關的audiotrack變量,因為我們要得到的是解碼數據,跟播放無關。

修改后代碼如下

1 package com.sixin.speex; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.RandomAccessFile; 7 import java.util.ArrayList; 8 import java.util.List; 9 10 import android.media.AudioFormat; 11 import android.media.AudioManager; 12 import android.media.AudioTrack; 13 import android.os.RecoverySystem.ProgressListener; 14 import android.util.Log; 15 16 /** 17 * 采用Jspeex方案,首先解包,從ogg里面接出來,然后使用speex decode將speex轉為wav數據并進行播放 18 * 19 * @author Honghe 20 */ 21 public class SpeexFileDecoder { 22 23 protected Speex speexDecoder; 24 private String errmsg = null; 25 private List<ProgressListener> listenerList = new ArrayList<ProgressListener>(); 26 private File srcPath; 27 private File dstPath; 28 29 public SpeexFileDecoder(File srcPath, File dstPath) throws Exception { 30 this.srcPath = srcPath; 31 this.dstPath = dstPath; 32 } 33 34 private void initializeAndroidAudio(int sampleRate) throws Exception { 35 int minBufferSize = AudioTrack.getMinBufferSize(sampleRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT); 36 37 if (minBufferSize < 0) { 38 throw new Exception("Failed to get minimum buffer size: " + Integer.toString(minBufferSize)); 39 } 40 } 41 42 public void addOnMetadataListener(ProgressListener l) { 43 listenerList.add(l); 44 } 45 46 public String getErrmsg() { 47 return errmsg; 48 } 49 50 public void decode() throws Exception { 51 errmsg = null; 52 byte[] header = new byte[2048]; 53 byte[] payload = new byte[65536]; 54 final int OGG_HEADERSIZE = 27; 55 final int OGG_SEGOFFSET = 26; 56 final String OGGID = "OggS"; 57 int segments = 0; 58 int curseg = 0; 59 int bodybytes = 0; 60 int decsize = 0; 61 int packetNo = 0; 62 // construct a new decoder 63 speexDecoder = new Speex(); 64 speexDecoder.init(); 65 // open the input stream 66 RandomAccessFile dis = new RandomAccessFile(srcPath, "r"); 67 FileOutputStream fos = new FileOutputStream(dstPath); 68 69 int origchksum; 70 int chksum; 71 try { 72 73 // read until we get to EOF 74 while (true) { 75 if (Thread.interrupted()) { 76 dis.close(); 77 return; 78 } 79 80 // read the OGG header 81 dis.readFully(header, 0, OGG_HEADERSIZE); 82 origchksum = readInt(header, 22); 83 readLong(header, 6); 84 header[22] = 0; 85 header[23] = 0; 86 header[24] = 0; 87 header[25] = 0; 88 chksum = OggCrc.checksum(0, header, 0, OGG_HEADERSIZE); 89 90 // make sure its a OGG header 91 if (!OGGID.equals(new String(header, 0, 4))) { 92 System.err.println("missing ogg id!"); 93 errmsg = "missing ogg id!"; 94 return; 95 } 96 97 /* how many segments are there? */ 98 segments = header[OGG_SEGOFFSET] & 0xFF; 99 dis.readFully(header, OGG_HEADERSIZE, segments); 100 chksum = OggCrc.checksum(chksum, header, OGG_HEADERSIZE, segments); 101 102 /* decode each segment, writing output to wav */ 103 for (curseg = 0; curseg < segments; curseg++) { 104 105 if (Thread.interrupted()) { 106 dis.close(); 107 return; 108 } 109 110 /* get the number of bytes in the segment */ 111 bodybytes = header[OGG_HEADERSIZE + curseg] & 0xFF; 112 if (bodybytes == 255) { 113 System.err.println("sorry, don't handle 255 sizes!"); 114 return; 115 } 116 dis.readFully(payload, 0, bodybytes); 117 chksum = OggCrc.checksum(chksum, payload, 0, bodybytes); 118 119 /* decode the segment */ 120 /* if first packet, read the Speex header */ 121 if (packetNo == 0) { 122 if (readSpeexHeader(payload, 0, bodybytes, true)) { 123 124 packetNo++; 125 } else { 126 packetNo = 0; 127 } 128 } else if (packetNo == 1) { // Ogg Comment packet 129 packetNo++; 130 } else { 131 132 /* get the amount of decoded data */ 133 short[] decoded = new short[160]; 134 if ((decsize = speexDecoder.decode(payload, decoded, 160)) > 0) { 135 //把邊解邊播改為寫文件 136 fos.write(ShortAndByte.shortArray2ByteArray(decoded), 0, decsize * 2); 137 } 138 packetNo++; 139 } 140 } 141 if (chksum != origchksum) 142 throw new IOException("Ogg CheckSums do not match"); 143 } 144 } catch (Exception e) { 145 e.printStackTrace(); 146 } 147 fos.close(); 148 dis.close(); 149 } 150 151 /** 152 * Reads the header packet. 153 * 154 * <pre> 155 * 0 - 7: speex_string: "Speex " 156 * 8 - 27: speex_version: "speex-1.0" 157 * 28 - 31: speex_version_id: 1 158 * 32 - 35: header_size: 80 159 * 36 - 39: rate 160 * 40 - 43: mode: 0=narrowband, 1=wb, 2=uwb 161 * 44 - 47: mode_bitstream_version: 4 162 * 48 - 51: nb_channels 163 * 52 - 55: bitrate: -1 164 * 56 - 59: frame_size: 160 165 * 60 - 63: vbr 166 * 64 - 67: frames_per_packet 167 * 68 - 71: extra_headers: 0 168 * 72 - 75: reserved1 169 * 76 - 79: reserved2 170 * </pre> 171 * 172 * @param packet 173 * @param offset 174 * @param bytes 175 * @return 176 * @throws Exception 177 */ 178 private boolean readSpeexHeader(final byte[] packet, final int offset, final int bytes, boolean init) throws Exception { 179 if (bytes != 80) { 180 return false; 181 } 182 if (!"Speex ".equals(new String(packet, offset, 8))) { 183 return false; 184 } 185 // int mode = packet[40 + offset] & 0xFF; 186 int sampleRate = readInt(packet, offset + 36); 187 // int channels = readInt(packet, offset + 48); 188 // int nframes = readInt(packet, offset + 64); 189 // int frameSize = readInt(packet, offset + 56); 190 // RongXinLog.SystemOut("mode=" + mode + " sampleRate==" + sampleRate + " channels=" + channels 191 // + "nframes=" + nframes + "framesize=" + frameSize); 192 initializeAndroidAudio(sampleRate); 193 194 if (init) { 195 // return speexDecoder.init(mode, sampleRate, channels, enhanced); 196 return true; 197 } else { 198 return true; 199 } 200 } 201 202 protected static int readInt(final byte[] data, final int offset) { 203 /* 204 * no 0xff on the last one to keep the sign 205 */ 206 return (data[offset] & 0xff) | ((data[offset + 1] & 0xff) << 8) | ((data[offset + 2] & 0xff) << 16) | (data[offset + 3] << 24); 207 } 208 209 protected static long readLong(final byte[] data, final int offset) { 210 /* 211 * no 0xff on the last one to keep the sign 212 */ 213 return (data[offset] & 0xff) | ((data[offset + 1] & 0xff) << 8) | ((data[offset + 2] & 0xff) << 16) | ((data[offset + 3] & 0xff) << 24) | ((data[offset + 4] & 0xff) << 32) 214 | ((data[offset + 5] & 0xff) << 40) | ((data[offset + 6] & 0xff) << 48) | (data[offset + 7] << 56); 215 } 216 217 protected static int readShort(final byte[] data, final int offset) { 218 /* 219 * no 0xff on the last one to keep the sign 220 */ 221 return (data[offset] & 0xff) | (data[offset + 1] << 8); 222 } 223 224 }

注意上面因為speex解碼出來的是160個short類型的數組,而java寫文件要求寫入的是byte數組,所以我們還是用到了short轉byte數組的方法shortArray2ByteArray,我封裝了一個類。也貼在下邊

1 package com.sixin.speex; 2 3 public class ShortAndByte { 4 /** 5 * @功能 短整型與字節的轉換 6 * @param 短整型 7 * @return 兩位的字節數組 8 */ 9 public static byte[] shortToByte(short number) { 10 int temp = number; 11 byte[] b = new byte[2]; 12 for (int i = 0; i < b.length; i++) { 13 b[i] = new Integer(temp & 0xff).byteValue();// 將最低位保存在最低位 14 temp = temp >> 8; // 向右移8位 15 } 16 return b; 17 } 18 19 /** 20 * @功能 字節的轉換與短整型 21 * @param 兩位的字節數組 22 * @return 短整型 23 */ 24 public static short byteToShort(byte[] b) { 25 short s = 0; 26 short s0 = (short) (b[0] & 0xff);// 最低位 27 short s1 = (short) (b[1] & 0xff); 28 s1 <<= 8; 29 s = (short) (s0 | s1); 30 return s; 31 } 32 33 /** 34 * @說明 主要是為解析靜態數據包,將一個字節數組轉換為short數組 35 * @param b 36 */ 37 public static short[] byteArray2ShortArray(byte[] b) { 38 int len = b.length / 2; 39 int index = 0; 40 short[] re = new short[len]; 41 byte[] buf = new byte[2]; 42 for (int i = 0; i < b.length;) { 43 buf[0] = b[i]; 44 buf[1] = b[i + 1]; 45 short st = byteToShort(buf); 46 re[index] = st; 47 index++; 48 i += 2; 49 } 50 return re; 51 } 52 53 /** 54 * @說明 主要是為解析靜態數據包,將一個short數組反轉為字節數組 55 * @param b 56 */ 57 public static byte[] shortArray2ByteArray(short[] b) { 58 byte[] rebt = new byte[b.length * 2]; 59 int index = 0; 60 for (int i = 0; i < b.length; i++) { 61 short st = b[i]; 62 byte[] bt = shortToByte(st); 63 rebt[index] = bt[0]; 64 rebt[index + 1] = bt[1]; 65 index += 2; 66 } 67 return rebt; 68 } 69 }

讀出來的原數據我們放入到了dstPath的文件,再來看看是怎么操作的呢?其中我還是修改了gauss的speexplayer方法。

我們復制speexPlayer方法,改名為SpeexFileDecoderHelper,按照如下方法修改

1 /** 2 * 3 */ 4 package com.sixin.speex; 5 6 import java.io.File; 7 8 import android.os.Handler; 9 10 /** 11 * @author honghe 12 * 13 */ 14 public class SpeexFileDecoderHelper { 15 private String srcName = null; 16 private String dstName = null; 17 private SpeexFileDecoder speexdec = null; 18 private OnSpeexFileCompletionListener speexListener = null; 19 private static final int speexdecode_completion = 1001; 20 private static final int speexdecode_error = 1002; 21 22 public Handler handler = new Handler() { 23 public void handleMessage(android.os.Message msg) { 24 int what = msg.what; 25 switch (what) { 26 case speexdecode_completion: 27 if (speexListener != null) { 28 speexListener.onCompletion(speexdec); 29 } else { 30 System.out.println("司信---------null===speexListener"); 31 } 32 break; 33 case speexdecode_error: 34 if (speexListener != null) { 35 File file = new File(SpeexFileDecoderHelper.this.srcName); 36 if (null != file && file.exists()) { 37 file.delete(); 38 } 39 speexListener.onError(null); 40 } 41 break; 42 default: 43 break; 44 } 45 }; 46 }; 47 48 public SpeexFileDecoderHelper(String fileName,String dstName, OnSpeexFileCompletionListener splistener) { 49 this.speexListener = splistener; 50 this.srcName = fileName; 51 this.dstName = dstName; 52 try { 53 speexdec = new SpeexFileDecoder(new File(this.srcName),new File(this.dstName)); 54 } catch (Exception e) { 55 e.printStackTrace(); 56 File file = new File(SpeexFileDecoderHelper.this.srcName); 57 if (null != file && file.exists()) { 58 file.delete(); 59 } 60 } 61 } 62 63 public void startDecode() { 64 RecordDecodeThread rpt = new RecordDecodeThread(); 65 Thread th = new Thread(rpt); 66 th.start(); 67 } 68 69 public boolean isDecoding = false; 70 71 class RecordDecodeThread extends Thread { 72 73 public void run() { 74 try { 75 if (speexdec != null) { 76 isDecoding = true; 77 speexdec.decode(); 78 if (null != speexdec.getErrmsg()) { 79 throw new Exception(speexdec.getErrmsg()); 80 } 81 } 82 System.out.println("RecordPlayThread 文件轉換完成"); 83 if (isDecoding) { 84 handler.sendEmptyMessage(speexdecode_completion); 85 } 86 isDecoding = false; 87 } catch (Exception t) { 88 t.printStackTrace(); 89 System.out.println("RecordPlayThread 文件轉換出錯"); 90 handler.sendEmptyMessage(speexdecode_error); 91 isDecoding = false; 92 } 93 } 94 } 95 96 /** 97 * 結束播放 98 */ 99 public void stopDecode() { 100 isDecoding = false; 101 } 102 103 public String getSpxFileName() { 104 return this.srcName; 105 }; 106 }

這個方法是開啟了一個現成去解碼,然后解碼完成后會發送handler,調用回調方法,通知解碼失敗還是成功。OnSpeexFileCompletionListener這個很簡單,我需要貼嗎?還是貼上吧,省的被罵娘。

1 package com.sixin.speex; 2 3 /** 4 * Speex音頻解碼完成監聽 5 * @author honghe 6 * 7 */ 8 public interface OnSpeexFileCompletionListener { 9 void onCompletion(SpeexFileDecoder speexdecoder); 10 void onError(Exception ex); 11 }

到此代碼都貼出來了。什么?!還不會用?哦,我還沒寫怎么加wav頭呢,那再寫個方法吧

1 /** 2 * 語音轉換 3 * 4 * @param name 5 * @param srcFileName spx文件名 6 * @param dstFileName 轉換后得到文件的文件名 7 */ 8 public static void decodeSpx(Context context, String srcFileName, final String dstFileName) { 9 final String temppath = AudioFileFunc.getFilePathByName("temp.raw"); 10 try { 11 // 如果是speex錄音 12 if (srcFileName != null && srcFileName.endsWith(".spx")) { 13 if (mSpeexFileDecoderHelper != null && mSpeexFileDecoderHelper.isDecoding) { 14 stopMusic(context); 15 } else { 16 muteAudioFocus(context, true); 17 mSpeexFileDecoderHelper = new SpeexFileDecoderHelper(srcFileName, temppath, new OnSpeexFileCompletionListener() { 18 19 @Override 20 public void onError(Exception ex) { 21 System.out.println("轉換錯誤"); 22 } 23 24 @Override 25 public void onCompletion(SpeexFileDecoder speexdecoder) { 26 System.out.println("轉換完成"); 27 WaveJoin.copyWaveFile(temppath, dstFileName); 28 } 29 }); 30 mSpeexFileDecoderHelper.startDecode(); 31 } 32 } else { 33 System.out.println("音頻文件格式不正確"); 34 } 35 36 } catch (Exception e) { 37 e.printStackTrace(); 38 } 39 }


copyWaveFile這個方法在哪里?去看開頭的那個鏈接吧,上面有。不過在加wav頭的時候要注意,加的頭要和你錄制音頻的時候設置的參數一致,比如samplerate,聲道數,framesize這些,我就設置錯了一次,gauss錄制音頻的時候使用的是單聲道,我加入的wav頭的channel設置成了2,結果放出來的聲音老搞笑了,就跟快放一樣。有興趣你可以試試。

代碼已更新

代碼鏈接如下:

https://github.com/dongweiq/study/tree/master/Record

我的github地址:https://github.com/dongweiq/study

歡迎關注,歡迎star o(∩_∩)o 。有什么問題請郵箱聯系 dongweiqmail@gmail.com qq714094450

轉載于:https://www.cnblogs.com/dongweiq/p/4521655.html

總結

以上是生活随笔為你收集整理的(原创)speex与wav格式音频文件的互相转换(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

精品二区视频 | 婷婷五情天综123 | 免费看在线看www777 | 久久久免费看片 | 国产尤物在线 | 天堂av中文字幕 | 国产精品久久久久久久午夜片 | 在线观看色网站 | 日本乱码在线 | 国产精品久久久久影院 | 天天五月天色 | 蜜桃传媒一区二区 | 我要色综合天天 | 亚洲免费观看在线视频 | 久久久久电影网站 | 国产一区二区三精品久久久无广告 | 欧美激情视频一区二区三区 | 免费久久片 | 亚洲性少妇性猛交wwww乱大交 | 亚洲一区免费在线 | 国产精品毛片一区 | 五月黄色 | 欧美精品一区二区在线播放 | 91精品国产综合久久福利 | 丝袜一区在线 | 精品久久在线 | 伊人婷婷在线 | 国产系列在线观看 | 欧美日韩aaaa| 欧美 激情 国产 91 在线 | 一级一片免费观看 | 美女网站色 | jizzjizzjizz亚洲| 日韩精品一区电影 | 69性欧美| 99精品视频免费看 | 国产精品久久久久久婷婷天堂 | 免费在线激情视频 | 婷婷丁香av | 天天摸夜夜添 | 中文字幕亚洲欧美 | 亚洲电影影音先锋 | 综合久久久久久 | 成人黄色电影免费观看 | 久草在线视频国产 | 九九爱免费视频在线观看 | 亚洲永久字幕 | 久久精品电影网 | av黄色免费网站 | 91丨九色丨首页 | 视频在线一区 | av丝袜在线| 天天色天天操综合网 | 视频在线一区 | 911香蕉 | 中国美女一级看片 | 天天干天天干天天色 | 日韩精品一区二区电影 | 精品99免费视频 | 色偷偷中文字幕 | 亚洲性xxxx | 日韩视频免费看 | 成年人视频在线免费播放 | 日韩精品视频免费专区在线播放 | 色综合久久久久久久 | 日本少妇高清做爰视频 | 黄色在线看网站 | 国产专区一 | 国产理伦在线 | 成人av高清在线 | 六月色丁| 亚洲理论电影 | 天天鲁天天干天天射 | 国产91综合一区在线观看 | 久久草 | 亚洲精品乱码久久久久久 | 中文字幕制服丝袜av久久 | www色com| 美女av电影 | 日韩欧美一区二区三区黑寡妇 | av中文在线观看 | 亚洲国产资源 | 四虎成人精品 | 九月婷婷色 | 天天操天天干天天玩 | 国产成人精品久 | 一区二区三区久久精品 | 久久久午夜精品福利内容 | 91视频免费观看 | 99国产精品视频免费观看一公开 | 在线观看网站你懂的 | 亚洲成人资源 | 亚洲日本va在线观看 | 黄色三级免费看 | 欧美日韩视频在线观看免费 | 久久国产精品免费观看 | 久久国产影视 | 国产精品第一页在线观看 | 亚洲精品乱码 | 欧美一二三区在线观看 | 免费av观看 | 一区二区av | 日韩高清一二三区 | 午夜aaaa | 成人黄色大片 | av动态图片| www.日韩免费 | 91激情视频在线观看 | 精品久久网 | 日韩久久影院 | 9在线观看免费高清完整版在线观看明 | 成片人卡1卡2卡3手机免费看 | 精品免费国产一区二区三区四区 | 尤物97国产精品久久精品国产 | 娇妻呻吟一区二区三区 | 成 人 a v天堂 | 精品一区二区影视 | 亚洲www天堂com| 国产专区精品视频 | 国产精品成久久久久三级 | 99精品热| 夜夜骑天天操 | 国产免费a| www.狠狠插.com | 久久久黄色av | 国产区久久 | 人人艹人人 | 久久r精品 | 午夜精品久久久久久久99水蜜桃 | 成 人 黄 色视频免费播放 | 欧美日韩亚洲第一页 | 国内精品久久久久影院优 | 欧美日韩国产一区二区在线观看 | 日日爱影视 | 激情校园亚洲 | 91大神精品视频在线观看 | 最近中文字幕视频网 | 精品视频9999 | 一区二区三区四区精品 | 久久大香线蕉app | 亚洲精品美女视频 | 免费视频色 | 黄色视屏在线免费观看 | 亚洲综合一区二区精品导航 | 日日夜夜av | 五月婷婷综合激情网 | 中文字幕免 | 国产拍揄自揄精品视频麻豆 | 亚洲精品国产精品久久99热 | 免费一级片久久 | 国产精品免费观看国产网曝瓜 | 911久久香蕉国产线看观看 | 午夜免费福利视频 | 人人干网站 | 免费看91的网站 | 国产成人亚洲在线观看 | 久久精品三 | 天天色.com | 美女视频是黄的免费观看 | 国产成人精品一区二区三区在线观看 | 久久久久久国产精品免费 | 国产在线永久 | 中文一二区 | 欧美精品久久久久久久亚洲调教 | 成人黄大片视频在线观看 | 国产成人av免费在线观看 | 99热这里只有精品8 久久综合毛片 | 亚洲成人av片 | 手机成人免费视频 | 久久久久久福利 | 欧美日韩视频一区二区 | 国产电影黄色av | 婷婷久久丁香 | 日韩午夜一级片 | 欧美精品九九99久久 | 涩涩爱夜夜爱 | 国产99视频在线观看 | 国产精品免费视频久久久 | 日批视频在线观看免费 | 一区在线观看视频 | 久久情爱 | 久久亚洲福利视频 | 中文字幕 国产专区 | 欧美日韩精品免费观看 | 91精品久久久久久久久久久久久 | 久久久久亚洲国产 | 欧美伦理一区二区三区 | 一 级 黄 色 片免费看的 | 99在线免费观看视频 | 亚洲综合最新在线 | 天天干夜夜夜 | 少妇搡bbb | 最近日本mv字幕免费观看 | 亚州成人av在线 | 中文字幕亚洲在线观看 | 天天激情综合 | 黄色91在线| aaa免费毛片 | 天天干天天操天天入 | 久久精品99久久久久久 | 国内揄拍国内精品 | 欧美日韩视频网站 | 69久久久久久久 | 日韩欧美网址 | 夜夜高潮夜夜爽国产伦精品 | 午夜av剧场 | 伊人婷婷 | 天天射天天干 | 久久国语| 国产精品久久久久久久久免费 | 久久精品成人欧美大片古装 | 免费福利片2019潦草影视午夜 | 三级黄色欧美 | 国产精品2020 | 亚洲黄色高清 | 欧美色婷婷 | 国产一级视频在线 | 91黄色小视频 | 伊人国产女| 日韩欧美在线一区二区 | 欧产日产国产69 | 高清一区二区三区 | 夜夜操天天操 | 久久蜜臀一区二区三区av | 亚洲免费av片 | 久久亚洲二区 | 伊人天天色 | 亚洲日本va午夜在线影院 | 日本少妇视频 | 最近中文字幕在线 | 中文字幕视频网站 | 中文字幕网站 | 综合精品在线 | 中文字幕一区二区三区精华液 | 亚洲日本黄色 | 日本久久久精品视频 | 九九色综合 | 日韩欧美在线观看一区二区三区 | 国产香蕉视频在线播放 | 色99导航| 久久美女免费视频 | 在线国产日本 | 国产中文字幕在线观看 | 在线观看免费中文字幕 | 丁香六月婷婷综合 | 国产群p | 久久久久久久99精品免费观看 | 六月丁香综合 | 深爱激情亚洲 | 国产中文在线视频 | 黄免费网站 | 免费黄色特级片 | 国产精品va最新国产精品视频 | 最近中文字幕mv | 日韩av在线看 | 欧美精品中文在线免费观看 | 国产尤物视频在线 | 99视频在线免费观看 | 色综合咪咪久久网 | 午夜精品一区二区国产 | 人人爽人人澡人人添人人人人 | 亚洲欧洲日韩在线观看 | 欧美怡红院| av在线播放网址 | 丁香六月欧美 | 久久国产精品视频观看 | 最近日本mv字幕免费观看 | 亚洲成av人片在线观看www | 麻豆国产视频下载 | 97视频在线观看视频免费视频 | 综合影视| 91黄色免费网站 | 96av在线视频 | 日韩理论片中文字幕 | 日韩精品一区二区在线观看 | 国产福利在线不卡 | 久久久精品在线观看 | 国产在线视频一区二区 | 国产麻豆视频网站 | 免费日韩 精品中文字幕视频在线 | 日韩免费一区二区三区 | 天天爽夜夜爽精品视频婷婷 | 免费看毛片网站 | 国产成人一区二区三区在线观看 | 2021av在线 | 天天操天天干天天 | 国产精品美乳一区二区免费 | 日日干影院 | 国产中文字幕在线播放 | 91麻豆精品国产91久久久久 | 五月天丁香视频 | av色综合网 | 丁香花中文在线免费观看 | 国产看片免费 | 免费a级毛片在线看 | 美女中文字幕 | 欧美日韩中文在线视频 | 欧美激情视频在线免费观看 | 在线直播av | 99热最新地址| 国产资源精品在线观看 | av在线播放免费 | 一区二区精品在线 | 精品女同一区二区三区在线观看 | 久久伊人爱 | 美州a亚洲一视本频v色道 | 国产精品麻豆免费版 | 国产尤物视频在线 | 五月婷在线播放 | 欧美国产日韩在线视频 | 日韩xxx视频 | 久久免费看 | 精品91| 久久久久久久久久久久国产精品 | 国产一级片免费观看 | 久久高清av | 国产一级一片免费播放放a 一区二区三区国产欧美 | 色老板在线 | 福利av影院| 中文字幕 二区 | 999成人| 夜又临在线观看 | 在线观看免费视频 | 中文在线免费视频 | 亚洲视频免费在线看 | 国产日韩欧美综合在线 | 亚洲国产午夜 | 99久久超碰中文字幕伊人 | 玖玖玖精品 | 菠萝菠萝在线精品视频 | 国产999在线观看 | 91视频午夜 | 97自拍超碰| 在线观看亚洲专区 | 美女视频永久黄网站免费观看国产 | 日韩免费av网址 | 久久久黄视频 | 超碰个人在线 | 国产日产高清dvd碟片 | 日本中文字幕网站 | 国产玖玖在线 | 亚洲欧美日韩精品久久奇米一区 | 色婷婷国产精品一区在线观看 | 日韩中文字幕网站 | 亚洲精品xxxx | 日本三级在线观看中文字 | 欧美a在线免费观看 | 日本最新高清不卡中文字幕 | 欧美精品一区二区蜜臀亚洲 | 天天干.com | 911av视频| 五月天久久婷婷 | 日韩色爱 | 婷婷天天色| 中文在线天堂资源 | 狠狠狠狠狠狠狠狠 | 99精品视频一区 | 麻豆国产视频下载 | 制服丝袜亚洲 | 久久av一区二区三区亚洲 | 日本中文字幕在线免费观看 | 国产高清免费观看 | 中文一区在线观看 | 免费热情视频 | 久久精选 | 在线观看国产一区二区 | 91毛片在线观看 | 国产剧情在线一区 | 久久久久中文 | 久热电影 | a√天堂中文在线 | 中文字幕国产精品 | 久久精品99 | 草久电影| 黄色三级网站在线观看 | 亚洲高清视频在线 | 91片黄在线观| 激情图片久久 | www91在线| 久久免费精品一区二区三区 | 麻豆一级视频 | 国产高清av在线播放 | 国产精品欧美久久久久无广告 | 国产在线观看地址 | 欧美一区二区在线免费观看 | 婷婷丁香激情网 | 日本高清免费中文字幕 | 国产精品女同一区二区三区久久夜 | 在线观看国产一区 | 久久视频免费在线观看 | 91字幕| 中文字幕在线一区二区三区 | 久久久久9999亚洲精品 | 国产亚洲免费的视频看 | 国产精品一区在线播放 | 91豆花在线观看 | 天天操天天射天天插 | 中文字幕人成乱码在线观看 | 精品久久精品久久 | 偷拍区另类综合在线 | 国产精品成人免费精品自在线观看 | 日本一区二区免费在线观看 | 91色网址| 视频在线一区二区三区 | 99理论片| 国产精品自产拍在线观看 | 久久久久久久久毛片精品 | 中文字幕一区二区三区乱码不卡 | 91自拍视频在线观看 | 日韩有码中文字幕在线 | 欧美在线free| av九九九| 国产精品夜夜夜一区二区三区尤 | 色综合久久综合中文综合网 | 丁香综合五月 | 久青草视频在线观看 | 黄色一级大片免费看 | 久久狠狠亚洲综合 | 中文字幕亚洲综合久久五月天色无吗'' | 免费视频久久久久久久 | 久久久国产精品麻豆 | 狠狠色噜噜狠狠狠狠2021天天 | 国产精品久久久久久久久久三级 | av一级片 | 狠狠操夜夜 | 国产精品99爱 | 日韩h在线观看 | 日韩欧美在线中文字幕 | 在线观看视频你懂得 | 午夜一级免费电影 | 久久久久五月天 | 国产精品九九视频 | 人人爽人人看 | 在线不卡a | 久久久久成人精品亚洲国产 | 又污又黄的网站 | 三级av网站 | 97在线成人 | 色激情五月 | 国产一区二区午夜 | 日日操日日 | 五月激情电影 | 免费黄色小网站 | 免费观看国产精品视频 | 精品国产人成亚洲区 | 亚洲国产片 | 丝袜制服天堂 | 99精品免费网 | 色av男人的天堂免费在线 | 狂野欧美激情性xxxx | 黄色91免费观看 | 日韩三级一区 | 欧美亚洲专区 | 国产99久久久国产精品免费看 | 超碰在线中文字幕 | 欧美午夜久久 | 午夜国产成人 | 天天激情天天干 | 日韩com | 天天干天天操天天搞 | 欧美先锋影音 | 欧美黑人猛交 | 亚洲精品乱码久久久久久蜜桃动漫 | 精品特级毛片 | 亚州精品天堂中文字幕 | 国产精品女人久久久久久 | 久久综合狠狠综合久久综合88 | 久久精品这里精品 | 亚洲视频一 | 国产精品手机播放 | 成人啪啪18免费游戏链接 | 91亚洲精品乱码久久久久久蜜桃 | 男女拍拍免费视频 | 成人午夜电影网站 | 97超碰福利久久精品 | 在线视频第一页 | 久久99爱视频 | 黄色av三级在线 | 午夜丰满寂寞少妇精品 | 友田真希x88av | 精品国产亚洲一区二区麻豆 | 国产最顶级的黄色片在线免费观看 | 九九久久国产精品 | 911免费视频 | 精品在线观看视频 | 久热免费在线 | 一区二区三区免费在线观看视频 | 狠狠五月天 | 亚州人成在线播放 | 成人h电影在线观看 | 激情五月***国产精品 | 欧美黑人xxxx猛性大交 | 久久久久久国产精品久久 | 欧美日韩激情视频8区 | av综合在线观看 | 欧美国产视频在线 | 一本一本久久a久久精品牛牛影视 | 国产乱视频 | 天天摸日日操 | 日韩在线观看一区 | 免费亚洲视频 | 悠悠av资源片 | 亚洲欧美少妇 | 欧美精品一区二区性色 | 中文字幕观看av | 中文字幕在线观看三区 | 毛片网免费 | 亚洲精品美女在线观看 | 欧美视频xxx | 天天干天天摸天天操 | 91在线观 | av国产在线观看 | 最近免费中文字幕大全高清10 | 草久在线视频 | 丁香婷婷综合色啪 | 亚洲高清视频一区二区三区 | 狠狠狠狠狠色综合 | 亚洲视频久久久 | 综合色久 | 日韩网页 | 蜜臀av网址 | 国产一级免费在线观看 | 精产嫩模国品一二三区 | 国产高清在线免费观看 | 久久国产精品视频 | 国产精品久久久久久久久搜平片 | av免费看网站 | 91高清视频免费 | 在线视频 精品 | 国内精品毛片 | 精品在线播放视频 | 人人爱人人舔 | 麻豆传媒视频在线免费观看 | 亚洲三级影院 | 亚洲欧洲国产日韩精品 | 日韩激情在线视频 | 青青视频一区 | 伊人网av | 色播激情五月 | 亚洲精品国产品国语在线 | 在线精品一区二区 | 久草在线最新视频 | www.91国产| 国产精品成人一区二区三区吃奶 | 日韩欧美在线观看 | 日本久久久久久久久久久 | 人人超在线公开视频 | 成人av中文字幕在线观看 | 天天操天天射天天插 | a v在线观看| 免费久久久 | 精品久久久久一区二区国产 | 日韩中文字幕免费在线播放 | 国产 日韩 在线 亚洲 字幕 中文 | 日韩免费网站 | 免费av在线 | 香蕉91视频 | 狠狠操导航 | 国产精品白浆 | 免费看亚洲毛片 | 中文字幕一区二区三区乱码在线 | 欧美另类一二三四区 | 久久久精品福利视频 | 五月天亚洲婷婷 | 午夜精品久久一牛影视 | 日韩av午夜在线观看 | 国产成人精品久久二区二区 | 婷婷电影在线观看 | 国产亚洲免费观看 | 久久久久国产精品免费网站 | 中文字幕资源在线观看 | 精品中文字幕视频 | 色免费在线 | 日韩成人精品一区二区 | 国产成本人视频在线观看 | 欧美日韩视频在线播放 | 精品字幕 | 色多多在线观看 | 91精品国产欧美一区二区成人 | 日韩精品播放 | 亚洲精品黄网站 | 国产91在线看 | 超级碰99| 欧美日韩免费视频 | 精品国产精品一区二区夜夜嗨 | 国产精品网红直播 | 久久免费看 | 久热久草在线 | 色一级片 | 色欧美88888久久久久久影院 | 国产麻豆剧传媒免费观看 | 久久久久亚洲精品男人的天堂 | 国产成本人视频在线观看 | 国产一级二级三级在线观看 | 日韩精品一区二区在线观看视频 | 五月色综合 | 久久国产色 | 91视频啊啊啊 | 日韩av手机在线看 | 久久一区二区三区超碰国产精品 | 免费看短 | 美女精品在线 | 国产一区二区三区免费观看视频 | 麻豆视传媒官网免费观看 | av免费线看 | 玖玖在线视频观看 | 狠狠色伊人亚洲综合网站野外 | 日韩色综合 | www.久久色.com| 精品一区二区免费视频 | 超碰在97 | 亚洲在线日韩 | 在线成人av| 黄色三级av | 中国黄色一级大片 | 蜜臀一区二区三区精品免费视频 | 国产精品毛片一区二区 | 中文字幕一区二区三区四区视频 | 国产一区二区三区在线 | 亚洲国产视频网站 | 亚洲成色| 久久久美女 | 亚洲午夜久久久影院 | 91激情视频在线 | 久久久久久久久久影视 | 国产麻豆精品一区二区 | 亚洲精品午夜久久久久久久久久久 | 天天操操操操操操 | 九九日韩 | 久久免费激情视频 | 中文字幕免费观看全部电影 | 嫩草伊人久久精品少妇av | 偷拍视频一区 | 精品99在线观看 | 色在线最新 | 亚洲视频每日更新 | 亚洲欧洲中文日韩久久av乱码 | 免费a v视频| 69国产成人综合久久精品欧美 | 在线网址你懂得 | 国产精品麻豆免费版 | 国产在线观看黄 | av观看在线观看 | 黄色片免费电影 | 日本性高潮视频 | 久久综合视频网 | 91亚色在线观看 | 九九九在线观看视频 | 在线视频18在线视频4k | 亚洲在线视频免费 | 亚洲人成免费网站 | 97色婷婷人人爽人人 | 五月天天在线 | 973理论片235影院9 | 色综合色综合久久综合频道88 | 日本精品久久久久久 | 色一级片| 精品国产乱码久久久久久浪潮 | 国产不卡视频在线播放 | 成人一区影院 | 国产精品18久久久久vr手机版特色 | 天天拍天天爽 | 三级黄色欧美 | 午夜免费在线观看 | 久久久九色精品国产一区二区三区 | 97超碰人人澡人人爱学生 | 一区二区三区高清在线观看 | 激情综合网在线观看 | 91一区啪爱嗯打偷拍欧美 | 亚洲精品视频在线观看免费视频 | 欧美性生活大片 | 日韩国产精品久久 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 免费福利片 | 狠狠色丁香婷婷综合 | 91探花在线视频 | 久久久久福利视频 | 狠狠狠狠狠狠天天爱 | 欧美精品久久久久久久久久久 | 国产精品18久久久久久不卡孕妇 | 成人av教育 | 中文字幕在线免费播放 | 日韩激情视频 | 青青河边草手机免费 | 在线视频婷婷 | 香蕉在线观看视频 | 日本精品一区二区在线观看 | av三级在线免费观看 | 亚洲欧美日韩一二三区 | 五月天婷婷在线播放 | 人人爽人人干 | 亚洲免费永久精品国产 | 2023年中文无字幕文字 | 国产原创av在线 | 国产精品片 | 国产高清免费视频 | 国产精品高清在线 | 午夜精品久久久久久久99婷婷 | 成人免费毛片aaaaaa片 | 日韩免费三级 | 黄色中文字幕在线 | 亚洲春色综合另类校园电影 | 成人a v视频 | 最近中文字幕免费观看 | 日日干激情五月 | 欧美在线18 | 亚洲一区二区精品3399 | 色婷婷av一区二 | 欧美尹人| 伊人久久婷婷 | 国产精品久久久久久久久久久久午夜 | 91久久久久久久 | 久久精品视频中文字幕 | 亚洲精品在线视频网站 | 欧美在线视频免费 | 国产日韩视频在线观看 | 最新超碰在线 | 97在线看 | 欧美日韩色婷婷 | 欧美 亚洲 另类 激情 另类 | 精品成人a区在线观看 | 国产视频1 | 黄色一及电影 | av电影免费在线 | 亚洲自拍av在线 | 91男人影院| 国产亚洲成av片在线观看 | 手机av资源| 免费在线观看一区 | 99热99re6国产在线播放 | 久久久国产精品电影 | 亚洲欧美日韩精品久久久 | 免费观看一区二区三区视频 | 国产香蕉视频 | 欧美日韩亚洲第一页 | 免费三级a | 综合精品在线 | 国产999视频 | 91精品国自产拍天天拍 | 久久精品久久久久久久 | 免费黄色一区 | 一区二区三区四区五区在线 | 日韩视频一区二区在线观看 | 99精品国产高清在线观看 | 日韩欧美高清一区二区三区 | 久久爽久久爽久久av东京爽 | 久草视频在线资源 | 成人小电影在线看 | 精品视频免费在线 | 久久久久这里只有精品 | 亚洲人成人99网站 | 91视频大全 | 国产精品免费视频一区二区 | 亚洲女人天堂成人av在线 | 婷婷综合久久 | 在线播放国产一区二区三区 | 成人黄色在线观看视频 | 久久久久久国产一区二区三区 | 国产成人在线网站 | 国产婷婷视频在线 | 日本超碰在线 | 欧美日韩国产综合网 | 亚洲国产最新 | 91福利在线导航 | 日韩偷拍精品 | 久久久久久久久久电影 | 国产伦理久久精品久久久久_ | 在线免费观看视频一区二区三区 | 国内少妇自拍视频一区 | 在线观看亚洲成人 | 亚洲人在线视频 | 国产精品久久久久久久久毛片 | 日韩欧美在线高清 | 最近日韩中文字幕中文 | 国产剧情av在线播放 | 国产精品国产自产拍高清av | 蜜臀av一区| 久久亚洲私人国产精品va | 日韩免费久久 | 97在线观看免费观看 | 国产精品自产拍在线观看中文 | 欧美激情精品久久久久久 | 激情图片久久 | 免费在线观看不卡av | 久草视频国产 | 27xxoo无遮挡动态视频 | 五月婷婷电影网 | 9在线观看免费高清完整版在线观看明 | 深爱婷婷久久综合 | 免费中文字幕 | 成人wwwxxx视频 | 天天干天天草 | 亚洲永久精品视频 | 九九久久视频 | 黄色影院在线观看 | 99视频精品全部免费 在线 | 激情综合五月婷婷 | 精品久久一 | 精品天堂av | 亚州人成在线播放 | 国产一在线精品一区在线观看 | 九九免费精品 | 国产精品久久久久久久免费观看 | 欧美少妇影院 | 香蕉视频亚洲 | av一级片在线观看 | 午夜视频在线观看一区二区 | 久久特级毛片 | 麻豆手机在线 | 亚洲激情视频 | 日本三级久久久 | 激情网综合 | 国产91大片 | 成人av动漫在线 | 国产精品一区二区三区观看 | 久久久久久久久久久高潮一区二区 | 这里只有精彩视频 | 97视频在线播放 | 91在线影院 | 综合久久影院 | 久久亚洲国产精品 | 超碰97在线资源站 | 伊人国产视频 | 亚洲最新av网址 | 国产在线精品区 | 最近中文字幕完整高清 | 91香蕉视频色版 | 97精品视频在线 | 人人插人人做 | a色视频| 亚洲在线视频网站 | 99色资源| 日韩av免费观看网站 | 亚洲aⅴ一区二区三区 | 粉嫩aⅴ一区二区三区 | 亚洲成人资源在线观看 | 深夜成人av| 久久专区 | 国产精品久久久久高潮 | 国产精品 国产精品 | 999电影免费在线观看 | 欧美日韩视频在线播放 | 成年人视频在线免费观看 | 国产一区国产二区在线观看 | 久久色在线播放 | 久久久18| 久久综合色8888 | 婷婷丁香激情 | 99久久精品午夜一区二区小说 | 国产精品久久久精品 | 在线观看涩涩 | 亚洲综合欧美精品电影 | 日韩国产精品一区 | 成年人国产在线观看 | 国产精品美女久久久久久久 | 国产成人精品一区二区三区福利 | 久久精品免费电影 | 91丨九色丨91啦蝌蚪老版 | 不卡av电影在线 | 久久狠狠一本精品综合网 | 狠狠狠色丁香综合久久天下网 | 伊人影院在线观看 | 久久国产精品成人免费浪潮 | 亚欧日韩av | 超碰国产人人 | 久久精品免费看 | av免费观看网站 | 亚洲资源一区 | 中文国产成人精品久久一 | 日本最新一区二区三区 | 91丨九色丨国产在线 | 日韩中文字幕在线看 | 999久久| 精品一区二区免费在线观看 | 久久av免费观看 | 天天草天天草 | 中文字幕 在线 一 二 | 亚洲天堂网在线视频 | 免费高清看电视网站 | 日韩精品一区二区不卡 | 国产手机精品视频 | 最新免费中文字幕 | 日韩大陆欧美高清视频区 | 国产三级国产精品国产专区50 | 久青草电影 | 精品一区二三区 | 人人澡人人添人人爽一区二区 | 欧美日韩国产xxx | 国产精品免费视频网站 | 黄色看片| 欧美在线视频一区二区 | 免费观看一级成人毛片 | 欧美午夜精品久久久久久浪潮 | 四虎在线观看网址 | 人人躁 | 韩国av免费 | 久久午夜精品影院一区 | 在线观看国产中文字幕 | 一级黄色在线视频 | 欧美另类xxxx| 天天插综合网 | 久久欧洲视频 | 国产黄色在线看 | 国产精品一区二区三区四 | 欧美综合在线观看 | 亚洲综合狠狠干 | 午夜精品视频福利 | 日本三级不卡视频 | 九九精品无码 | 激情av资源网 | 日韩欧美区| 日韩精品电影在线播放 | 久久精品综合一区 | 成人h电影在线观看 | 97在线观看视频 | 天天插狠狠插 | 欧美日韩啪啪 | 综合网色| 久久在线免费视频 | 久久99深爱久久99精品 | 欧美三级高清 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 午夜精品一区二区三区免费视频 | 丁香资源影视免费观看 | 国产精品久久在线 | 国产特级毛片aaaaaa毛片 | 亚洲精品在线免费观看视频 | 免费观看国产成人 | 美女视频免费精品 | 国产资源免费 | 国产一级片在线播放 | 国产老太婆免费交性大片 | 日日夜夜天天人人 | 亚洲黄色在线观看 | 在线免费看黄网站 | 天堂av在线免费 | 六月丁香在线观看 | 在线免费高清视频 | 久久天| 天天看天天干天天操 | 成人免费网站视频 | 国产午夜三级一区二区三桃花影视 | 久久激情五月婷婷 | 成人综合免费 | 日本高清免费中文字幕 | 日韩高清dvd| 色99导航 | 激情视频一区二区三区 | 国产视频观看 | 国产电影黄色av | 精品久久久久久久久久久久 | 午夜久久久久久久久久影院 | 亚洲精品视频二区 | 久久一区二区免费视频 | 国产成人三级一区二区在线观看一 | 色狠狠一区二区 | 亚洲黄色免费网站 | 亚洲一区久久 | www色婷婷com| 色综合天天在线 | 五月天综合网 | 精品福利网 | 亚洲 欧美 综合 在线 精品 | 人人草天天草 | 婷婷丁香花五月天 | 亚洲一区二区精品视频 | 韩日三级av | 久久在线免费视频 | av一二三区 | 久久久久久久久久网站 | 国产美女在线精品免费观看 | 天天干夜夜爱 | 免费污片 | 国产日韩在线观看一区 | 久久综合九色综合久久久精品综合 | 成人久久网 | 人人澡人人爱 | 欧美精品乱码久久久久久 | 精品视频999| 色综合天天综合网国产成人网 | 人人澡人人澡人人 | 国产精品一区二区三区电影 | 丁香婷五月 | 欧美成人精品三级在线观看播放 | a在线视频v视频 | 日韩在线视频播放 | 国产精品字幕 | 久久久久久久久免费 | 天天爱综合 | 成人免费精品 | 国产成人精品一区一区一区 | 国产1级视频 | 精品国产乱码久久久久久天美 | 在线a亚洲视频播放在线观看 | av片子在线观看 | 婷婷综合五月天 | 久久精品网站视频 | 日韩电影在线观看一区 |