精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

小米錄音機源碼

移動開發
MIUI錄音機是基于Android原生錄音機來開發的,能夠運行在Android2.3.3及以上版本。與Android原生錄音機相比,MIUI錄音機在UI、交互方式和錄音效果上都有較大的提升,其磁帶的顯示效果更是收到了很多用戶的好評

源碼簡介:MIUI錄音機是基于Android原生錄音機來開發的,能夠運行在Android2.3.3及以上版本。與Android原生錄音機相比,MIUI錄音機在UI、交互方式和錄音效果上都有較大的提升,其磁帶的顯示效果更是收到了很多用戶的好評

源碼效果:

源碼片段:

  1. /* 
  2.  * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) 
  3.  * 
  4.  * Licensed under the Apache License, Version 2.0 (the "License"); 
  5.  * you may not use this file except in compliance with the License. 
  6.  * You may obtain a copy of the License at 
  7.  * 
  8.  *        http://www.apache.org/licenses/LICENSE-2.0 
  9.  * 
  10.  * Unless required by applicable law or agreed to in writing, software 
  11.  * distributed under the License is distributed on an "AS IS" BASIS, 
  12.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  13.  * See the License for the specific language governing permissions and 
  14.  * limitations under the License. 
  15.  */ 
  16.   
  17. package net.micode.soundrecorder; 
  18.   
  19. import android.app.KeyguardManager; 
  20. import android.app.Notification; 
  21. import android.app.NotificationManager; 
  22. import android.app.PendingIntent; 
  23. import android.app.Service; 
  24. import android.content.Context; 
  25. import android.content.Intent; 
  26. import android.media.AudioManager; 
  27. import android.media.MediaRecorder; 
  28. import android.net.Uri; 
  29. import android.os.Bundle; 
  30. import android.os.Handler; 
  31. import android.os.IBinder; 
  32. import android.os.PowerManager; 
  33. import android.os.PowerManager.WakeLock; 
  34. import android.telephony.PhoneStateListener; 
  35. import android.telephony.TelephonyManager; 
  36.   
  37. import java.io.File; 
  38. import java.io.IOException; 
  39.   
  40. public class RecorderService extends Service implements MediaRecorder.OnErrorListener { 
  41.   
  42.     public final static String ACTION_NAME = "action_type"
  43.   
  44.     public final static int ACTION_INVALID = 0
  45.   
  46.     public final static int ACTION_START_RECORDING = 1
  47.   
  48.     public final static int ACTION_STOP_RECORDING = 2
  49.   
  50.     public final static int ACTION_ENABLE_MONITOR_REMAIN_TIME = 3
  51.   
  52.     public final static int ACTION_DISABLE_MONITOR_REMAIN_TIME = 4
  53.   
  54.     public final static String ACTION_PARAM_FORMAT = "format"
  55.   
  56.     public final static String ACTION_PARAM_PATH = "path"
  57.   
  58.     public final static String ACTION_PARAM_HIGH_QUALITY = "high_quality"
  59.   
  60.     public final static String ACTION_PARAM_MAX_FILE_SIZE = "max_file_size"
  61.   
  62.     public final static String RECORDER_SERVICE_BROADCAST_NAME = "com.android.soundrecorder.broadcast"
  63.   
  64.     public final static String RECORDER_SERVICE_BROADCAST_STATE = "is_recording"
  65.   
  66.     public final static String RECORDER_SERVICE_BROADCAST_ERROR = "error_code"
  67.   
  68.     public final static int NOTIFICATION_ID = 62343234
  69.   
  70.     private static MediaRecorder mRecorder = null
  71.   
  72.     private static String mFilePath = null
  73.   
  74.     private static long mStartTime = 0
  75.   
  76.     private RemainingTimeCalculator mRemainingTimeCalculator; 
  77.   
  78.     private NotificationManager mNotifiManager; 
  79.   
  80.     private Notification mLowStorageNotification; 
  81.   
  82.     private TelephonyManager mTeleManager; 
  83.   
  84.     private WakeLock mWakeLock; 
  85.   
  86.     private KeyguardManager mKeyguardManager; 
  87.   
  88.     private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() { 
  89.         @Override 
  90.         public void onCallStateChanged(int state, String incomingNumber) { 
  91.             if (state != TelephonyManager.CALL_STATE_IDLE) { 
  92.                 localStopRecording(); 
  93.             } 
  94.         } 
  95.     }; 
  96.   
  97.     private final Handler mHandler = new Handler(); 
  98.   
  99.     private Runnable mUpdateRemainingTime = new Runnable() { 
  100.         public void run() { 
  101.             if (mRecorder != null && mNeedUpdateRemainingTime) { 
  102.                 updateRemainingTime(); 
  103.             } 
  104.         } 
  105.     }; 
  106.   
  107.     private boolean mNeedUpdateRemainingTime; 
  108.   
  109.     @Override 
  110.     public void onCreate() { 
  111.         super.onCreate(); 
  112.         mRecorder = null
  113.         mLowStorageNotification = null
  114.         mRemainingTimeCalculator = new RemainingTimeCalculator(); 
  115.         mNeedUpdateRemainingTime = false
  116.         mNotifiManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
  117.         mTeleManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
  118.         mTeleManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); 
  119.         PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
  120.         mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SoundRecorder"); 
  121.         mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); 
  122.     } 
  123.   
  124.     @Override 
  125.     public int onStartCommand(Intent intent, int flags, int startId) { 
  126.         Bundle bundle = intent.getExtras(); 
  127.         if (bundle != null && bundle.containsKey(ACTION_NAME)) { 
  128.             switch (bundle.getInt(ACTION_NAME, ACTION_INVALID)) { 
  129.                 case ACTION_START_RECORDING: 
  130.                     localStartRecording(bundle.getInt(ACTION_PARAM_FORMAT), 
  131.                             bundle.getString(ACTION_PARAM_PATH), 
  132.                             bundle.getBoolean(ACTION_PARAM_HIGH_QUALITY), 
  133.                             bundle.getLong(ACTION_PARAM_MAX_FILE_SIZE)); 
  134.                     break
  135.                 case ACTION_STOP_RECORDING: 
  136.                     localStopRecording(); 
  137.                     break
  138.                 case ACTION_ENABLE_MONITOR_REMAIN_TIME: 
  139.                     if (mRecorder != null) { 
  140.                         mNeedUpdateRemainingTime = true
  141.                         mHandler.post(mUpdateRemainingTime); 
  142.                     } 
  143.                     break
  144.                 case ACTION_DISABLE_MONITOR_REMAIN_TIME: 
  145.                     mNeedUpdateRemainingTime = false
  146.                     if (mRecorder != null) { 
  147.                         showRecordingNotification(); 
  148.                     } 
  149.                     break
  150.                 default
  151.                     break
  152.             } 
  153.             return START_STICKY; 
  154.         } 
  155.         return super.onStartCommand(intent, flags, startId); 
  156.     } 
  157.   
  158.     @Override 
  159.     public void onDestroy() { 
  160.         mTeleManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); 
  161.         if (mWakeLock.isHeld()) { 
  162.             mWakeLock.release(); 
  163.         } 
  164.         super.onDestroy(); 
  165.     } 
  166.   
  167.     @Override 
  168.     public IBinder onBind(Intent intent) { 
  169.         return null
  170.     } 
  171.   
  172.     @Override 
  173.     public void onLowMemory() { 
  174.         localStopRecording(); 
  175.         super.onLowMemory(); 
  176.     } 
  177.   
  178.     private void localStartRecording(int outputfileformat, String path, boolean highQuality, 
  179.             long maxFileSize) { 
  180.         if (mRecorder == null) { 
  181.             mRemainingTimeCalculator.reset(); 
  182.             if (maxFileSize != -1) { 
  183.                 mRemainingTimeCalculator.setFileSizeLimit(new File(path), maxFileSize); 
  184.             } 
  185.   
  186.             mRecorder = new MediaRecorder(); 
  187.             mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
  188.             if (outputfileformat == MediaRecorder.OutputFormat.THREE_GPP) { 
  189.                 mRemainingTimeCalculator.setBitRate(SoundRecorder.BITRATE_3GPP); 
  190.                 mRecorder.setAudioSamplingRate(highQuality ? 44100 : 22050); 
  191.                 mRecorder.setOutputFormat(outputfileformat); 
  192.                 mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
  193.             } else { 
  194.                 mRemainingTimeCalculator.setBitRate(SoundRecorder.BITRATE_AMR); 
  195.                 mRecorder.setAudioSamplingRate(highQuality ? 16000 : 8000); 
  196.                 mRecorder.setOutputFormat(outputfileformat); 
  197.                 mRecorder.setAudioEncoder(highQuality ? MediaRecorder.AudioEncoder.AMR_WB 
  198.                         : MediaRecorder.AudioEncoder.AMR_NB); 
  199.             } 
  200.             mRecorder.setOutputFile(path); 
  201.             mRecorder.setOnErrorListener(this); 
  202.   
  203.             // Handle IOException 
  204.             try { 
  205.                 mRecorder.prepare(); 
  206.             } catch (IOException exception) { 
  207.                 sendErrorBroadcast(Recorder.INTERNAL_ERROR); 
  208.                 mRecorder.reset(); 
  209.                 mRecorder.release(); 
  210.                 mRecorder = null
  211.                 return
  212.             } 
  213.             // Handle RuntimeException if the recording couldn't start 
  214.             try { 
  215.                 mRecorder.start(); 
  216.             } catch (RuntimeException exception) { 
  217.                 AudioManager audioMngr = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
  218.                 boolean isInCall = (audioMngr.getMode() == AudioManager.MODE_IN_CALL); 
  219.                 if (isInCall) { 
  220.                     sendErrorBroadcast(Recorder.IN_CALL_RECORD_ERROR); 
  221.                 } else { 
  222.                     sendErrorBroadcast(Recorder.INTERNAL_ERROR); 
  223.                 } 
  224.                 mRecorder.reset(); 
  225.                 mRecorder.release(); 
  226.                 mRecorder = null
  227.                 return
  228.             } 
  229.             mFilePath = path; 
  230.             mStartTime = System.currentTimeMillis(); 
  231.             mWakeLock.acquire(); 
  232.             mNeedUpdateRemainingTime = false
  233.             sendStateBroadcast(); 
  234.             showRecordingNotification(); 
  235.         } 
  236.     } 
  237.   
  238.     private void localStopRecording() { 
  239.         if (mRecorder != null) { 
  240.             mNeedUpdateRemainingTime = false
  241.             try { 
  242.                 mRecorder.stop(); 
  243.             } catch (RuntimeException e) { 
  244.             } 
  245.             mRecorder.release(); 
  246.             mRecorder = null
  247.   
  248.             sendStateBroadcast(); 
  249.             showStoppedNotification(); 
  250.         } 
  251.         stopSelf(); 
  252.     } 
  253.   
  254.     private void showRecordingNotification() { 
  255.         Notification notification = new Notification(R.drawable.stat_sys_call_record, 
  256.                 getString(R.string.notification_recording), System.currentTimeMillis()); 
  257.         notification.flags = Notification.FLAG_ONGOING_EVENT; 
  258.         PendingIntent pendingIntent; 
  259.         pendingIntent = PendingIntent 
  260.                 .getActivity(this0new Intent(this, SoundRecorder.class), 0); 
  261.   
  262.         notification.setLatestEventInfo(this, getString(R.string.app_name), 
  263.                 getString(R.string.notification_recording), pendingIntent); 
  264.   
  265.         startForeground(NOTIFICATION_ID, notification); 
  266.     } 
  267.   
  268.     private void showLowStorageNotification(int minutes) { 
  269.         if (mKeyguardManager.inKeyguardRestrictedInputMode()) { 
  270.             // it's not necessary to show this notification in lock-screen 
  271.             return
  272.         } 
  273.   
  274.         if (mLowStorageNotification == null) { 
  275.             mLowStorageNotification = new Notification(R.drawable.stat_sys_call_record_full, 
  276.                     getString(R.string.notification_recording), System.currentTimeMillis()); 
  277.             mLowStorageNotification.flags = Notification.FLAG_ONGOING_EVENT; 
  278.         } 
  279.   
  280.         PendingIntent pendingIntent; 
  281.         pendingIntent = PendingIntent 
  282.                 .getActivity(this0new Intent(this, SoundRecorder.class), 0); 
  283.   
  284.         mLowStorageNotification.setLatestEventInfo(this, getString(R.string.app_name), 
  285.                 getString(R.string.notification_warning, minutes), pendingIntent); 
  286.         startForeground(NOTIFICATION_ID, mLowStorageNotification); 
  287.     } 
  288.   
  289.     private void showStoppedNotification() { 
  290.         stopForeground(true); 
  291.         mLowStorageNotification = null
  292.   
  293.         Notification notification = new Notification(R.drawable.stat_sys_call_record, 
  294.                 getString(R.string.notification_stopped), System.currentTimeMillis()); 
  295.         notification.flags = Notification.FLAG_AUTO_CANCEL; 
  296.         Intent intent = new Intent(Intent.ACTION_VIEW); 
  297.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
  298.         intent.setType("audio/*"); 
  299.         intent.setDataAndType(Uri.fromFile(new File(mFilePath)), "audio/*"); 
  300.   
  301.         PendingIntent pendingIntent; 
  302.         pendingIntent = PendingIntent.getActivity(this0, intent, 
  303.                 PendingIntent.FLAG_UPDATE_CURRENT); 
  304.   
  305.         notification.setLatestEventInfo(this, getString(R.string.app_name), 
  306.                 getString(R.string.notification_stopped), pendingIntent); 
  307.         mNotifiManager.notify(NOTIFICATION_ID, notification); 
  308.     } 
  309.   
  310.     private void sendStateBroadcast() { 
  311.         Intent intent = new Intent(RECORDER_SERVICE_BROADCAST_NAME); 
  312.         intent.putExtra(RECORDER_SERVICE_BROADCAST_STATE, mRecorder != null); 
  313.         sendBroadcast(intent); 
  314.     } 
  315.   
  316.     private void sendErrorBroadcast(int error) { 
  317.         Intent intent = new Intent(RECORDER_SERVICE_BROADCAST_NAME); 
  318.         intent.putExtra(RECORDER_SERVICE_BROADCAST_ERROR, error); 
  319.         sendBroadcast(intent); 
  320.     } 
  321.   
  322.     private void updateRemainingTime() { 
  323.         long t = mRemainingTimeCalculator.timeRemaining(); 
  324.         if (t <= 0) { 
  325.             localStopRecording(); 
  326.             return
  327.         } else if (t <= 1800 
  328.                 && mRemainingTimeCalculator.currentLowerLimit() != RemainingTimeCalculator.FILE_SIZE_LIMIT) { 
  329.             // less than half one hour 
  330.             showLowStorageNotification((int) Math.ceil(t / 60.0)); 
  331.         } 
  332.   
  333.         if (mRecorder != null && mNeedUpdateRemainingTime) { 
  334.             mHandler.postDelayed(mUpdateRemainingTime, 500); 
  335.         } 
  336.     } 
  337.   
  338.     public static boolean isRecording() { 
  339.         return mRecorder != null
  340.     } 
  341.   
  342.     public static String getFilePath() { 
  343.         return mFilePath; 
  344.     } 
  345.   
  346.     public static long getStartTime() { 
  347.         return mStartTime; 
  348.     } 
  349.   
  350.     public static void startRecording(Context context, int outputfileformat, String path, 
  351.             boolean highQuality, long maxFileSize) { 
  352.         Intent intent = new Intent(context, RecorderService.class); 
  353.         intent.putExtra(ACTION_NAME, ACTION_START_RECORDING); 
  354.         intent.putExtra(ACTION_PARAM_FORMAT, outputfileformat); 
  355.         intent.putExtra(ACTION_PARAM_PATH, path); 
  356.         intent.putExtra(ACTION_PARAM_HIGH_QUALITY, highQuality); 
  357.         intent.putExtra(ACTION_PARAM_MAX_FILE_SIZE, maxFileSize); 
  358.         context.startService(intent); 
  359.     } 
  360.   
  361.     public static void stopRecording(Context context) { 
  362.         Intent intent = new Intent(context, RecorderService.class); 
  363.         intent.putExtra(ACTION_NAME, ACTION_STOP_RECORDING); 
  364.         context.startService(intent); 
  365.     } 
  366.   
  367.     public static int getMaxAmplitude() { 
  368.         return mRecorder == null ? 0 : mRecorder.getMaxAmplitude(); 
  369.     } 
  370.   
  371.     @Override 
  372.     public void onError(MediaRecorder mr, int what, int extra) { 
  373.         sendErrorBroadcast(Recorder.INTERNAL_ERROR); 
  374.         localStopRecording(); 
  375.     } 

下載地址:http://down.51cto.com/data/2089509

責任編輯:倪明 來源: devstore
相關推薦

2024-07-22 08:05:00

2022-05-13 23:03:55

Windows 10微軟應用程序

2018-01-31 09:00:54

內核源碼系統

2013-12-12 13:29:07

不刷機小米系統雷軍MIUI

2021-08-27 12:38:08

Windows 11操作系統微軟

2014-05-15 17:09:21

小米平板小米電視2新品發布

2013-10-09 10:12:13

小米智能

2012-05-01 16:44:50

小米

2012-06-08 15:10:24

歐洲杯小米俄羅斯

2013-12-09 11:00:37

小米雷軍

2021-03-29 22:12:04

小米小米11 Pro小米11 Ultra

2015-03-09 14:03:04

2015-04-15 14:07:21

2015-03-10 17:47:48

小米手機小米4惡意軟件

2012-04-13 13:44:54

小米

2012-04-12 09:37:28

小米

2021-09-27 15:16:11

小米MIUI12.5

2011-01-18 09:40:48

Linux聲卡

2012-07-25 10:57:40

傳真機
點贊
收藏

51CTO技術棧公眾號

亚洲欧美色图小说| 亚洲欧美成人综合| 日韩一区二区三区免费观看| 国产对白在线播放| 黄色www视频| 国产一区二区三区的电影| 亚洲区一区二区| 老司机久久精品| 美女91在线| 久久亚洲精品国产精品紫薇 | 国产99在线观看| 久久尤物电影视频在线观看| 国产日产欧美精品| 亚洲黄色一区二区| 日韩在线观看| 亚洲国产女人aaa毛片在线| 麻豆传传媒久久久爱| 18加网站在线| 欧美激情在线看| 鬼打鬼之黄金道士1992林正英| 日韩不卡视频在线| 你懂的国产精品永久在线| 亚洲精品少妇网址| 成人三级做爰av| av一区在线播放| 亚洲大片精品永久免费| 亚州欧美一区三区三区在线| 黑人精品一区二区三区| 麻豆成人久久精品二区三区红| 欧美激情高清视频| 午夜精品久久久久99蜜桃最新版| silk一区二区三区精品视频 | 欧美人与物videos| 性の欲びの女javhd| 中文字幕av一区二区三区四区| 在线精品视频免费播放| 韩日视频在线观看| av香蕉成人| 国产精品色在线观看| 久久青青草原| 国产综合在线播放| 国产精品资源站在线| 国产精品久久av| 久久久国产精品成人免费| 伊人色**天天综合婷婷| 中文字幕亚洲欧美在线| 30一40一50老女人毛片| 国产精品极品国产中出| 日韩欧美123| 91日韩精品视频| 国产情侣一区二区三区| 色网综合在线观看| 国产在线青青草| 毛片电影在线| 红桃av永久久久| 日本a视频在线观看| 色爱综合区网| 亚洲综合精品久久| 成人在线免费观看视频网站| 免费a级人成a大片在线观看| 国产精品人人做人人爽人人添| 欧美一区二区三区在线免费观看| 男女av在线| 久久久美女毛片| 日韩福利一区二区三区| 久久视频www| 国产欧美视频一区二区三区| 欧美一二三四五区| 成在在线免费视频| 国产精品久线观看视频| 亚洲区一区二区三区| 在线免费看a| ㊣最新国产の精品bt伙计久久| 中文字幕在线观看一区二区三区| 高潮毛片在线观看| 一区二区三区国产精品| 免费极品av一视觉盛宴| mm视频在线视频| 欧美日韩亚洲视频| 日本va中文字幕| 免费一区二区三区四区| 欧美片网站yy| 91成人在线观看喷潮蘑菇| av成人资源| 亚洲男人天堂2023| 成人无码精品1区2区3区免费看| 五月久久久综合一区二区小说| 久久夜色精品国产亚洲aⅴ| 欧美卡一卡二卡三| 一本久道久久久| 国产精品中文在线| 国产成人a人亚洲精品无码| 成人av免费在线观看| 欧美高清性xxxxhd| 很黄的网站在线观看| 亚洲自拍偷拍图区| 国产aaaaa毛片| 6080亚洲理论片在线观看| 亚洲裸体xxxx| 久久久久久视频| 国产精品久久久免费| 国产精品一区专区欧美日韩| 亚洲AV无码国产精品午夜字幕| 91污片在线观看| 亚洲乱码国产乱码精品天美传媒| 中文字幕资源网在线观看| 精品久久久久久国产91| 亚洲综合激情视频| 神马日本精品| 欧美老肥婆性猛交视频| 一级片免费在线播放| 国产一区二区0| 欧美精品久久久| 四虎亚洲精品| 欧美少妇xxx| 亚洲欧美在线不卡| 欧美一区在线看| 国产精品久久久av| 刘亦菲久久免费一区二区| 亚洲国产成人一区二区三区| 国产一区二区三区乱码| 欧美wwww| 欧美性猛交xxxx黑人| 宇都宫紫苑在线播放| 久久99国产精品视频| 色综合五月天导航| 国产又粗又大又爽视频| 久久亚洲私人国产精品va媚药| 91亚洲精品国产| 日韩美香港a一级毛片| 国产视频自拍一区| 精品少妇theporn| 国产一区在线精品| 日韩在线导航| 国产欧美一区二区三区精品酒店| 欧美成人高清电影在线| 国产又粗又长又黄的视频| 国产精品婷婷| 国模精品一区二区三区| 中文字幕中文字幕在线中高清免费版 | 99久久精品久久久久久ai换脸| a黄色在线观看| 欧美视频在线观看免费| 亚洲精品无码一区二区| 一区二区在线影院| 91在线无精精品一区二区| 成年人在线免费观看| 日韩欧美精品网址| 日韩av一二区| 国产精品久久久亚洲一区| 国产精品久久久久久久久久久久午夜片 | 亚洲精品97久久| 精品久久免费视频| 成人综合在线视频| 免费在线黄网站| 亚洲一区二区免费在线观看| 久久综合九色九九| 国产婷婷在线视频| 一区二区三区高清| 极品人妻一区二区| 1024精品一区二区三区| 国产乱子伦精品| 538视频在线| 精品在线观看国产| 日韩黄色一级视频| 国产精品美女久久久久高潮| 黄色成人免费看| 日韩av二区| 91夜夜未满十八勿入爽爽影院 | 麻豆tv在线播放| 欧美变态网站| 国产精品999999| 日本韩国在线视频爽| 91麻豆精品国产91久久久久久 | 午夜欧美2019年伦理| 精品一区二区三区四区五区六区| 999亚洲国产精| 欧美精品一区二区三区在线看午夜| 日韩精品一区二区三区| 在线亚洲男人天堂| av中文字幕免费| 性久久久久久久久久久久| 一级特级黄色片| 欧美aaa在线| 最近免费观看高清韩国日本大全| 一区二区三区亚洲变态调教大结局 | 影音先锋中文字幕一区| 精品一区二区三区日本| 国精产品一区一区三区四川| 久久久国产视频| 日韩永久免费视频| 在线精品视频一区二区| 亚洲色图综合区| 91老师国产黑色丝袜在线| 爆乳熟妇一区二区三区霸乳| 天天色综合色| 久久精品日韩精品| 国产精品欧美一区二区三区不卡 | 亚洲第一网站男人都懂| 69国产精品视频免费观看| 亚洲欧美综合色| 中文字幕 亚洲一区| 久久精品国产秦先生| 男女激情免费视频| 日韩欧美网址| 精品无码久久久久久久动漫| www.26天天久久天堂| 欧美激情视频三区| 1024国产在线| 日韩精品高清在线| 超碰在线人人干| 欧美综合一区二区| 亚洲男人第一av| 亚洲免费三区一区二区| 精品国产av无码| 东方aⅴ免费观看久久av| 午夜精品在线免费观看| 亚洲国产一区二区三区高清 | 国产精品v日韩精品v欧美精品网站 | 九九久久国产精品| 国产福利片在线| 亚洲国产成人精品电影| 91国在线视频| 五月婷婷色综合| 裸体武打性艳史| 国产精品美女视频| 摸摸摸bbb毛毛毛片| 成人免费毛片高清视频| 欧美激情国内自拍| 麻豆视频观看网址久久| 欧美视频在线播放一区| 国产一区清纯| 天天爱天天做天天操| 精品国产精品国产偷麻豆| 国产主播一区二区三区四区| 激情视频亚洲| 成人h视频在线| 成人精品高清在线视频| 人人爽久久涩噜噜噜网站| brazzers在线观看| 欧美黑人狂野猛交老妇| 黄在线免费看| 中文字幕在线视频日韩| 韩国免费在线视频| 亚洲欧美制服中文字幕| 日本福利片在线| 日韩精品在线影院| 天堂√在线中文官网在线| 亚洲高清久久网| 色噜噜在线播放| 亚洲成色777777在线观看影院| 国产高潮流白浆喷水视频| 91麻豆精品国产91久久久久久久久 | 激情综合网址| 久久久99精品视频| 欧美精品国产一区二区| 国产91在线亚洲| 狠狠入ady亚洲精品| 国产乱人伦精品一区二区三区| 午夜精品影院| 日韩欧美精品免费| 雨宫琴音一区二区在线| 免费av手机在线观看| 一本综合精品| 日本熟妇人妻xxxxx| 久久一二三四| www.日本一区| 激情综合五月天| 色综合久久久无码中文字幕波多| 国产精品一区二区91| 亚洲成人av免费观看| 懂色av一区二区在线播放| 中文字幕人妻一区| 26uuu国产电影一区二区| 欧美多人猛交狂配| 国产精品视频麻豆| 超碰手机在线观看| 亚洲一区中文在线| 天堂中文在线网| 在线观看视频一区二区欧美日韩| 在线观看国产黄| 日韩欧美激情在线| 日本一区高清| 中文字幕亚洲图片| 成人爽a毛片免费啪啪动漫| 91精品国产一区| 美女久久久久久| 国产亚洲精品久久飘花| 国产欧美日韩精品一区二区三区| 亚洲最大免费| 伊人成人在线视频| 日韩福利视频在线| 高清不卡一二三区| 国产又粗又黄又猛| 一级中文字幕一区二区| 亚洲综合久久网| 欧美一区二区三区免费| 亚洲 美腿 欧美 偷拍| 色哟哟网站入口亚洲精品| 欧美黄色视屏| 国产噜噜噜噜噜久久久久久久久| 日韩一区二区三区精品| 鲁鲁狠狠狠7777一区二区| 97精品国产| 国内外成人免费激情视频| 精品亚洲porn| 精品人妻无码一区二区三区| 亚洲欧美一区二区视频| 在线观看黄网站| 日韩欧美黄色影院| 在线免费观看黄| 欧美性受xxxx黑人猛交| 欧一区二区三区| 视频三区二区一区| 亚洲国产国产亚洲一二三| 亚洲欧美久久久久| 26uuu国产电影一区二区| 欧美三级 欧美一级| 欧美色综合网站| 四虎成人免费在线| 欧美风情在线观看| 国产一区精品福利| 日本欧洲国产一区二区| 亚洲黄色成人| 佐山爱在线视频| 综合在线观看色| 中国一级片黄色一级片黄| 亚洲国产天堂久久国产91 | 91精品国产777在线观看| 国产一区二区在线观| 亚洲国产一区二区精品视频| 亚洲专区免费| 亚洲国产综合视频| 亚洲成av人影院在线观看网| 99久久国产热无码精品免费| 色偷偷88888欧美精品久久久| 免费成人直播| 免费观看成人高| 国产一区二区三区的电影| 成年女人免费视频| 亚洲国产综合人成综合网站| 国产喷水吹潮视频www| 日韩在线免费观看视频| 日本欧美一区| 先锋在线资源一区二区三区| 国产农村妇女毛片精品久久莱园子| 国产chinese中国hdxxxx| 一区二区三区四区在线| 国内老熟妇对白xxxxhd| 另类图片亚洲另类| 精品中文在线| 国产免费裸体视频| 岛国精品在线观看| 精品无码免费视频| 亚洲成人激情视频| 麻豆国产在线| 欧美一区1区三区3区公司| 三级一区在线视频先锋| 亚洲黄色免费视频| 欧美性大战久久久| 免费在线看a| 51成人做爰www免费看网站| 欧美在线影院| 国产精品无码一区二区三| 精品久久中文字幕| 免费av在线电影| 国产日韩欧美视频在线| 91久久电影| 扒开伸进免费视频| 大荫蒂欧美视频另类xxxx| 久久伊伊香蕉| 成人午夜黄色影院| 亚洲香蕉网站| 亚洲乱码国产乱码精品精大量| 日韩欧美国产网站| 一级毛片视频在线| 99高清视频有精品视频| 亚洲激情二区| 欧美另类z0zx974| 欧美一级片免费看| 在线播放高清视频www| 奇米视频888战线精品播放| 裸体在线国模精品偷拍| 久草视频手机在线观看| 精品亚洲一区二区| 日日夜夜综合| 中文字幕无码精品亚洲资源网久久| 91麻豆文化传媒在线观看| 中文无码av一区二区三区| 美女av一区二区三区| 欧洲亚洲成人| 亚洲一区二区三区观看| 亚洲一二三区在线观看| 国产午夜精品一区理论片| 国产综合视频在线观看| 亚洲精品九九| 国产wwwwxxxx| 亚洲国内精品视频| 欧美视频在线视频精品| 中文字幕人妻熟女人妻洋洋|