久久精品中文字幕av,av.涩涩涩涩涩涩涩涩,亚洲国产日韩欧美精品成人久久久,成人福利电影免费在线观看,日产国产原创av,日韩av午夜激情,bt天堂中文字幕,超级碰人妻在线视频,欧美老熟妇久久一区二区

AI寫作智能體 自主規(guī)劃任務(wù),支持聯(lián)網(wǎng)查詢和網(wǎng)頁讀取,多模態(tài)高效創(chuàng)作各類分析報告、商業(yè)計劃、營銷方案、教學(xué)內(nèi)容等。 廣告
**這一章在處理相片與錄音檔名稱的時候有錯誤,建議在完成這一章的內(nèi)容以后,再參考[錯誤修正:4-1 使用照相機(jī)與麥克風(fēng)](https://github.com/macdidi5/AndroidTutorial/blob/master/AndroidTutorial4_1Update.md)修正錯誤。** 現(xiàn)在行動裝置的硬件設(shè)備技術(shù)已經(jīng)越來越好了,螢?zāi)坏某叽绮粩嗟脑黾?,提供使用者清楚又美觀的畫面。觸控螢?zāi)灰矌缀跏悄壳靶袆友b置的標(biāo)準(zhǔn)設(shè)備,使用觸控的方式操作應(yīng)用程式快速又方便。Android系統(tǒng)內(nèi)建的音樂播放應(yīng)用程式,也可以讓行動裝置成為隨身的音樂播放設(shè)備。還有畫素也越來越高的照像功能,一臺行動裝置幾乎可以應(yīng)付所有的需求。 行動裝置提供高畫質(zhì)的攝影鏡頭,讓使用者隨時可以拍攝照片與錄影,也幾乎已經(jīng)是行動裝置基本的設(shè)備與功能了。使用Android系統(tǒng)內(nèi)建的API與元件,可以在應(yīng)用程式需要的時候,讓使用者拍攝照片與錄影,并且把照片或影片檔案儲存在指定的位置。例如在記事本應(yīng)用程式中,可以加入照片與錄影備忘的功能。 應(yīng)用程式需要錄音的時候,可以使用內(nèi)建的API執(zhí)行錄音的工作,并且把錄音完成的檔案儲存在指定的位置,例如在記事本應(yīng)用程式中,可以加入錄制語音備忘的功能,讓使用者可以隨時查詢與播放這些錄音資訊。 這一章為記事資料加入照相與錄音的功能,讓這個應(yīng)用程式的功能可以更完整,使用者可以在新增或修改記事資料的時候,啟動相機(jī)拍照,還有使用麥克風(fēng)錄制語音備忘。 ## 12-1 使用相機(jī)拍攝照片 不論是移動電話或平板電腦,幾乎都有高畫質(zhì)的攝錄鏡頭設(shè)備,讓使用者可以隨時拍攝與錄影。加入拍攝照片的功能可以讓應(yīng)用程式的功能更完整,例如在記事本應(yīng)用程式加入拍照的功能,記錄影像會比文字更清楚與方便。 應(yīng)用程式需要執(zhí)行拍照的功能,可以啟動系統(tǒng)相機(jī)元件執(zhí)行拍照的工作,它的系統(tǒng)Action名稱變量是“MediaStore.ACTION_IMAGE_CAPTURE”,使用這個Action名稱建立好的Intent物件,可以呼叫putExtra方法加入照片檔案儲存位置的設(shè)定資料,資料的名稱是“MediaStore.EXTRA_OUTPUT”,如果沒有指定的話,會使用系統(tǒng)默認(rèn)的名稱儲存在默認(rèn)的位置。 應(yīng)用程式要執(zhí)行拍照的功能,裝置必須有攝錄鏡頭的設(shè)備才可以正確的執(zhí)行,所以需要在應(yīng)用程式設(shè)定檔中加入硬件設(shè)備需求的設(shè)定。如果需要儲存照片檔案到外部儲存設(shè)備,例如記憶卡,需要在應(yīng)用程式設(shè)定檔中加入授權(quán)設(shè)定: ~~~ <!-- 需要攝錄鏡頭設(shè)備 --> <uses-feature android:name="android.hardware.camera" /> <!-- 寫入外部儲存設(shè)備 --> <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE"/> ~~~ Android模擬裝置也可以測試相機(jī)的功能,不過要先確認(rèn)模擬裝置的設(shè)定,關(guān)閉已經(jīng)啟動的模擬裝置,在Android Studio選擇功能表“Tools -> Android -> AVD Manager”,選擇模擬裝置的編輯圖示: [![AndroidTutorial5_04_01_01](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_01-300x171.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_01.png) 在模擬裝置編輯視窗選擇“Show Advanced Settings”: [![AndroidTutorial5_04_01_02](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_02-300x152.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_02.png) 如果你的電腦沒有連接WebCam,在“Front”與“Back”選擇“Emulated”。如果電已經(jīng)連接WebCam,就可以選擇“Webcam0”。完成設(shè)定后選擇“Finish”: [![AndroidTutorial5_04_01_03](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_03-300x152.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_03.png) 回到AVD Manager視窗后,選擇模擬裝置的啟動圖示: [![AndroidTutorial5_04_01_04](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_04-300x171.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_04.png) 模擬裝置啟動以后,開啟“照相”應(yīng)用程式,就可以看到模擬照相機(jī)的畫面: [![AndroidTutorial5_04_01_05](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_05-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_05.png) 因為記事元件的畫面加入照片以后,在螢?zāi)槐容^小的裝置運(yùn)作時,畫面會超過螢?zāi)坏姆秶孕枰{(diào)整畫面的設(shè)計。另外也要加入顯示照片用的ImageView元件。開啟“res/layout/activity_item.xml”,參考下列的內(nèi)容修改這個畫面配置檔: ~~~ <?xml version="1.0" encoding="utf-8"?> <!-- 使用ScrollView為最外層的元件 --> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 刪除xmlns:android的設(shè)定 --> <TableLayout xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:stretchColumns="1" tools:context="net.macdidi.myandroidtutorial.ItemActivity"> <TableRow> ... </TableRow> <TableRow> ... </TableRow> <!-- 顯示圖片 --> <ImageView android:id="@+id/picture" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/retangle_drawable" android:padding="6sp" android:layout_margin="2sp" android:visibility="invisible" /> <TableLayout ...> <TableRow> ... </TableRow> </TableLayout> <TableLayout ...> <TableRow> ... </TableRow> </TableLayout> </TableLayout> <!-- ScrollView的結(jié)束標(biāo)簽 --> </ScrollView> ~~~ 因為需要儲存照片與錄音檔案,所以撰寫一個檔案公用類別。在“net.macdidi.myandroidtutorial”套件按鼠標(biāo)右鍵,選擇“New -> Java CLass”,在Name輸入“FileUtil”后選擇“OK”。參考下列的內(nèi)容完成這個程式碼: ~~~ package net.macdidi.myandroidtutorial; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; import android.util.Log; import android.widget.ImageView; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class FileUtil { // 應(yīng)用程式儲存盤案的目錄 public static final String APP_DIR = "androidtutorial"; // 外部儲存設(shè)備是否可寫入 public static boolean isExternalStorageWritable() { // 取得目前外部儲存設(shè)備的狀態(tài) String state = Environment.getExternalStorageState(); // 判斷是否可寫入 if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } // 外部儲存設(shè)備是否可讀取 public static boolean isExternalStorageReadable() { // 取得目前外部儲存設(shè)備的狀態(tài) String state = Environment.getExternalStorageState(); // 判斷是否可讀取 if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { return true; } return false; } // 建立并傳回在公用相簿下參數(shù)指定的路徑 public static File getPublicAlbumStorageDir(String albumName) { // 取得公用的照片路徑 File pictures = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES); // 準(zhǔn)備在照片路徑下建立一個指定的路徑 File file = new File(pictures, albumName); // 如果建立路徑不成功 if (!file.mkdirs()) { Log.e("getAlbumStorageDir", "Directory not created"); } return file; } // 建立并傳回在應(yīng)用程式專用相簿下參數(shù)指定的路徑 public static File getAlbumStorageDir(Context context, String albumName) { // 取得應(yīng)用程式專用的照片路徑 File pictures = context.getExternalFilesDir( Environment.DIRECTORY_PICTURES); // 準(zhǔn)備在照片路徑下建立一個指定的路徑 File file = new File(pictures, albumName); // 如果建立路徑不成功 if (!file.mkdirs()) { Log.e("getAlbumStorageDir", "Directory not created"); } return file; } // 建立并傳回外部儲存媒體參數(shù)指定的路徑 public static File getExternalStorageDir(String dir) { File result = new File( Environment.getExternalStorageDirectory(), dir); if (!isExternalStorageWritable()) { return null; } if (!result.exists() && !result.mkdirs()) { return null; } return result; } // 讀取指定的照片檔案名稱設(shè)定給ImageView元件 public static void fileToImageView(String fileName, ImageView imageView) { if (new File(fileName).exists()) { Bitmap bitmap = BitmapFactory.decodeFile(fileName); imageView.setImageBitmap(bitmap); } else { Log.e("fileToImageView", fileName + " not found."); } } // 產(chǎn)生唯一的檔案名稱 public static String getUniqueFileName() { // 使用年月日_時分秒格式為檔案名稱 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss"); return sdf.format(new Date()); } } ~~~ 開啟在“net.macdidi.myandroidtutorial”套件下的“ItemActivity”類別,加入照相功能需要的字段變量: ~~~ // 檔案名稱 private String fileName; // 照片 private ImageView picture; ~~~ 同樣在“ItemActivity”類別,找到“processViews”方法,參考下列的程式碼,加入取得顯示照片ImageView元件的程式碼: ~~~ private void processViews() { title_text = (EditText) findViewById(R.id.title_text); content_text = (EditText) findViewById(R.id.content_text); // 取得顯示照片的ImageView元件 picture = (ImageView) findViewById(R.id.picture); } ~~~ 同樣在“ItemActivity”類別,找到“clickFunction”方法,參考下列的程式碼,加入啟動相機(jī)元件的程式碼: ~~~ public void clickFunction(View view) { int id = view.getId(); switch (id) { case R.id.take_picture: // 啟動相機(jī)元件用的Intent物件 Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // 照片檔案名稱 File pictureFile = configFileName("P", ".jpg"); Uri uri = Uri.fromFile(pictureFile); // 設(shè)定檔案名稱 intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, uri); // 啟動相機(jī)元件 startActivityForResult(intentCamera, START_CAMERA); break; ... } } private File configFileName(String prefix, String extension) { // 如果記事資料已經(jīng)有檔案名稱 if (item.getFileName() != null && item.getFileName().length() > 0) { fileName = item.getFileName(); } // 產(chǎn)生檔案名稱 else { fileName = FileUtil.getUniqueFileName(); } return new File(FileUtil.getExternalStorageDir(FileUtil.APP_DIR), prefix + fileName + extension); } ~~~ 同樣在“ItemActivity”類別,找到“onActivityResult”方法,參考下列的程式碼,處理完成照相工作后的程式碼: ~~~ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { switch (requestCode) { // 照像 case START_CAMERA: // 設(shè)定照片檔案名稱 item.setFileName(fileName); break; ... } } } ~~~ 同樣在“ItemActivity”類別,新增覆寫“onResume”方法的程式碼,執(zhí)行顯示照片的工作: ~~~ @Override protected void onResume() { super.onResume(); // 如果有檔案名稱 if (item.getFileName() != null && item.getFileName().length() > 0) { // 照片檔案物件 File file = configFileName("P", ".jpg"); // 如果照片檔案存在 if (file.exists()) { // 顯示照片元件 picture.setVisibility(View.VISIBLE); // 設(shè)定照片 FileUtil.fileToImageView(file.getAbsolutePath(), picture); } } } ~~~ 完成照相功能的工作了,執(zhí)行應(yīng)用程式,新增一個記事資料后選擇照相功能: [![AndroidTutorial5_04_01_06](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_06-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_06.png) 畫面出現(xiàn)像這樣的相機(jī)模擬畫面,選擇照像按鈕: [![AndroidTutorial5_04_01_07](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_07-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_07.png) 選擇確定按鈕: [![AndroidTutorial5_04_01_08](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_08-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_08.png) 記事資料顯示拍好的照片,儲存記事資料后也會儲存照片: [![AndroidTutorial5_04_01_09](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_09-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_09.png) ## 12-2 錄制語音備忘 在行動裝置的應(yīng)用程式使用錄音功能,可以讓很多工作變得更方便,例如語音備忘錄的功能,可以省掉很多輸入文字的時間。如果應(yīng)用程式需要執(zhí)行錄音的工作,使用宣告在“android.media”套件下的“MediaRecorder”類別,應(yīng)用程式可以設(shè)定錄音的來源、輸出格式、編碼和儲存盤案的位置。這些是執(zhí)行設(shè)定與錄音的方法,要特別注意在程式碼中呼叫它們的順序: * setAudioSource(int) – 設(shè)定錄音來源,必須在setOutputFormat方法之前呼叫。設(shè)定為“MediaRecorder.AudioSource.MIC”表示錄音來源是麥克風(fēng)。 * setOutputFormat(int) –設(shè)定輸出格式,必須在setAudioSource方法之后。設(shè)定為“MediaRecorder.OutputFormat.THREE_GPP”表示輸出為3GP壓縮格式。 * setAudioEncoder(int) –設(shè)定編碼方式,必須在setOutputFormat方法之后。一般設(shè)定為“MediaRecorder.AudioEncoder.AMR_NB”。 * setOutputFile(String) –設(shè)定輸出的檔案名稱,必須在setOutputFormat方法之后。 * prepare() – 使用設(shè)定的內(nèi)容準(zhǔn)備錄音。 * start() – 開始錄音。 * stop() – 停止錄音。 * release() – 清除錄音資源。 如果應(yīng)用程式需要使用裝置的錄音設(shè)備,必須在應(yīng)用程式設(shè)定檔“AndroidManifest.xml”加入授權(quán)的設(shè)定: ~~~ <uses-permission android:name="android.permission.RECORD_AUDIO"/> ~~~ 加入錄音功能的記事應(yīng)用程式,可以讓使用者選擇錄音功能按鈕,啟動一個負(fù)責(zé)錄音的Activity元件,按下錄音按鈕就可以開始錄音: [![AndroidTutorial5_04_01_10](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_10-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_10.png) 錄音的時候,錄音按鈕會切換為紅色的圖示,錄音的音量變化會在右側(cè)顯示: [![AndroidTutorial5_04_01_11](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_11-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_11.png) 設(shè)計錄音元件的畫面配置檔,使用的圖形資源可以在GitHub中取得,需要“record_dard_icon.png”與“record_red_icon.png”兩個圖示檔案。開啟“res/values/strings.xml”,加入這個元件需要的文字資源: ~~~ <string name="title_record">語音備忘</string> ~~~ 在“res/layout”目錄按鼠標(biāo)右鍵,選擇“New -> Layout resrouce file”,在File name輸入“activity_record”候選擇“OK”。參考下列的內(nèi)容,完成這個畫面資源的設(shè)計: ~~~ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/retangle_drawable" android:layout_margin="6sp" android:padding="6sp"> <ImageButton android:id="@+id/record_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/record_sound_icon" android:onClick="clickRecord" /> <ProgressBar android:id="@+id/record_volumn" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="6dp" android:layout_marginRight="6dp" android:max="15" style="@android:style/Widget.ProgressBar.Horizontal" /> </LinearLayout> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="*"> <TableRow> <Button android:text="@android:string/cancel" android:onClick="onSubmit" /> <Button android:id="@+id/record_ok" android:text="@android:string/ok" android:onClick="onSubmit" /> </TableRow> </TableLayout> </LinearLayout> ~~~ 在“net.macdidi.myandroidtutorial”套件按鼠標(biāo)右鍵,選擇“New -> Java CLass”,在Name輸入“RecordActivity”后選擇“OK”。參考下列的內(nèi)容完成這個Activity元件的程式碼:(這里提供的設(shè)計包含顯示錄音中的音量,你可以考慮移除這個部份的程式碼,這個元件的設(shè)計就會比較簡單一些) ~~~ package net.macdidi.myandroidtutorial; import android.app.Activity; import android.content.Intent; import android.media.MediaRecorder; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageButton; import android.widget.ProgressBar; import java.io.IOException; public class RecordActivity extends Activity { private ImageButton record_button; private boolean isRecording = false; private ProgressBar record_volumn; private MyRecoder myRecoder; private String fileName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_record); processViews(); // 讀取檔案名稱 Intent intent = getIntent(); fileName = intent.getStringExtra("fileName"); } public void onSubmit(View view) { if (isRecording) { // 停止錄音 myRecoder.stop(); } // 確定 if (view.getId() == R.id.record_ok) { Intent result = getIntent(); setResult(Activity.RESULT_OK, result); } finish(); } private void processViews() { record_button = (ImageButton) findViewById(R.id.record_button); record_volumn = (ProgressBar) findViewById(R.id.record_volumn); // 隱藏狀態(tài)列ProgressBar setProgressBarIndeterminateVisibility(false); } public void clickRecord(View view) { // 切換 isRecording = !isRecording; // 開始錄音 if (isRecording) { // 設(shè)定按鈕圖示為錄音中 record_button.setImageResource(R.drawable.record_red_icon); // 建立錄音物件 myRecoder = new MyRecoder(fileName); // 開始錄音 myRecoder.start(); // 建立并執(zhí)行顯示麥克風(fēng)音量的AsyncTask物件 new MicLevelTask().execute(); } // 停止錄音 else { // 設(shè)定按鈕圖示為停止錄音 record_button.setImageResource(R.drawable.record_dark_icon); // 麥克風(fēng)音量歸零 record_volumn.setProgress(0); // 停止錄音 myRecoder.stop(); } } // 在錄音過程中顯示麥克風(fēng)音量 private class MicLevelTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... args) { while (isRecording) { publishProgress(); try { Thread.sleep(200); } catch (InterruptedException e) { Log.d("RecordActivity", e.toString()); } } return null; } @Override protected void onProgressUpdate(Void... values) { record_volumn.setProgress((int) myRecoder.getAmplitudeEMA()); } } // 執(zhí)行錄音并且可以取得麥克風(fēng)音量的錄音物件 private class MyRecoder { private static final double EMA_FILTER = 0.6; private MediaRecorder recorder = null; private double mEMA = 0.0; private String output; // 建立錄音物件,參數(shù)為錄音儲存的位置與檔名 MyRecoder(String output) { this.output = output; } // 開始錄音 public void start() { if (recorder == null) { // 建立錄音用的MediaRecorder物件 recorder = new MediaRecorder(); // 設(shè)定錄音來源為麥克風(fēng),必須在setOutputFormat方法之前呼叫 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 設(shè)定輸出格式為3GP壓縮格式,必須在setAudioSource方法之后, // 在prepare方法之前呼叫 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // 設(shè)定錄音的編碼方式,必須在setOutputFormat方法之后, // 在prepare方法之前呼叫 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // 設(shè)定輸出的檔案名稱,必須在setOutputFormat方法之后, // 在prepare方法之前呼叫 recorder.setOutputFile(output); try { // 準(zhǔn)備執(zhí)行錄音工作,必須在所有設(shè)定之后呼叫 recorder.prepare(); } catch (IOException e) { Log.d("RecordActivity", e.toString()); } // 開始錄音 recorder.start(); mEMA = 0.0; } } // 停止錄音 public void stop() { if (recorder != null) { // 停止錄音 recorder.stop(); // 清除錄音資源 recorder.release(); recorder = null; } } public double getAmplitude() { if (recorder != null) return (recorder.getMaxAmplitude() / 2700.0); else return 0; } // 取得麥克風(fēng)音量 public double getAmplitudeEMA() { double amp = getAmplitude(); mEMA = EMA_FILTER * amp + (1.0 - EMA_FILTER) * mEMA; return mEMA; } } } ~~~ 開啟應(yīng)用程式設(shè)定檔“AndroidManifest.xml”,加入錄音元件的設(shè)定: ~~~ <!-- 錄音元件 --> <activity android:name="net.macdidi.myandroidtutorial.RecordActivity" android:theme="@android:style/Theme.Dialog" android:label="@string/title_record"/> ~~~ 完成錄音元件的設(shè)計后,開啟在“net.macdidi.myandroidtutorial”套件下的“ItemActivity”類別,找到“clickFunction”方法,加入啟動錄音元件的程式碼,還有負(fù)責(zé)錄音的goToRecord方法: ~~~ public void clickFunction(View view) { int id = view.getId(); switch (id) { case R.id.take_picture: ... case R.id.record_sound: // 錄音檔案名稱 final File recordFile = configFileName("R", ".mp3"); // 如果已經(jīng)有錄音檔,詢問播放或重新錄制 if (recordFile.exists()) { // 詢問播放還是重新錄制的對話框 AlertDialog.Builder d = new AlertDialog.Builder(this); d.setTitle(R.string.title_record) .setCancelable(false); d.setPositiveButton(R.string.record_play, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // 播放 // 在后面的說明才會處理 } }); d.setNeutralButton(R.string.record_new, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { goToRecord(recordFile); } }); d.setNegativeButton(android.R.string.cancel, null); // 顯示對話框 d.show(); } // 如果沒有錄音檔,啟動錄音元件 else { goToRecord(recordFile); } break; ... } } private void goToRecord(File recordFile) { // 錄音 Intent recordIntent = new Intent(this, RecordActivity.class); recordIntent.putExtra("fileName", recordFile.getAbsolutePath()); startActivityForResult(recordIntent, START_RECORD); } ~~~ 為記事資料完成錄音的功能了,在完成后面的播放功能后,再一起執(zhí)行測試的工作。 ## 12-3 播放語音備忘 在前面已經(jīng)完成的功能,如果使用者選擇的記事資料已經(jīng)錄制過語音備忘,應(yīng)用程式可以選擇播放或是重新錄制: [![AndroidTutorial5_04_01_12](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_12-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_12.png) 使用者選擇播放功能,應(yīng)用程式啟動播放語音備忘元件,這個元件提供播放、暫停與停止三個功能按鈕: [![AndroidTutorial5_04_01_13](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_13-167x300.png)](http://www.codedata.com.tw/wp-content/uploads/2015/02/AndroidTutorial5_04_01_13.png) 現(xiàn)在設(shè)計錄音元件的畫面配置檔,使用的圖形資源可以在GitHub中取得,需要“play_icon.png”、“pause_icon”與“stop_icon.png”三個圖示檔案。開啟“res/values/strings.xml”,加入這個元件需要的文字資源: ~~~ <string name="title_play">播放語音備忘</string> <string name="record_play">播放</string> <string name="record_new">重新錄制</string> ~~~ 在“res/layout”目錄按鼠標(biāo)右鍵,選擇“New -> Layout resrouce file”,在File name輸入“activity_play”候選擇“OK”。參考下列的內(nèi)容,完成這個畫面資源的設(shè)計: ~~~ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/retangle_drawable" android:layout_margin="6sp" android:padding="6sp" > <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/play_icon" android:onClick="clickPlay" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/pause_icon" android:onClick="clickPause" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/stop_icon" android:onClick="clickStop" /> <SeekBar android:id="@+id/control" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_marginTop="8sp" /> </LinearLayout> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ok_add_teim" android:text="@android:string/ok" android:onClick="onSubmit" /> </LinearLayout> ~~~ 在“net.macdidi.myandroidtutorial”套件按鼠標(biāo)右鍵,選擇“New -> Java CLass”,在Name輸入“PlayActivity”后選擇“OK”。參考下列的內(nèi)容完成這個Activity元件的程式碼: ~~~ package net.macdidi.myandroidtutorial; import android.app.Activity; import android.content.Intent; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.net.Uri; import android.os.Bundle; import android.view.View; public class PlayActivity extends Activity { private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_play); Intent intent = getIntent(); String fileName = intent.getStringExtra("fileName"); // 建立指定資源的MediaPlayer物件 Uri uri = Uri.parse(fileName); mediaPlayer = MediaPlayer.create(this, uri); } @Override protected void onStop() { if (mediaPlayer.isPlaying()) { // 停止播放 mediaPlayer.stop(); } // 清除MediaPlayer物件 mediaPlayer.release(); super.onStop(); } public void onSubmit(View view) { // 結(jié)束Activity元件 finish(); } public void clickPlay(View view) { // 開始播放 mediaPlayer.start(); } public void clickPause(View view) { // 暫停播放 mediaPlayer.pause(); } public void clickStop(View view) { // 停止播放 if (mediaPlayer.isPlaying()) { mediaPlayer.stop(); } // 回到開始的位置 mediaPlayer.seekTo(0); } } ~~~ 開啟應(yīng)用程式設(shè)定檔“AndroidManifest.xml”,加入這個Activity元件的設(shè)定: ~~~ <!-- 播放元件 --> <activity android:name="net.macdidi.myandroidtutorial.PlayActivity" android:theme="@android:style/Theme.Dialog" android:label="@string/title_play"/> ~~~ 完成元件的設(shè)計后,開啟在“net.macdidi.myandroidtutorial”套件下的“ItemActivity”類別,找到“clickFunction”方法,加入啟動這個元件的程式碼: ~~~ public void clickFunction(View view) { int id = view.getId(); switch (id) { case R.id.take_picture: ... case R.id.record_sound: // 錄音檔案名稱 final File recordFile = configFileName("R", ".mp3"); // 如果已經(jīng)有錄音檔,詢問播放或重新錄制 if (recordFile.exists()) { // 詢問播放還是重新錄制的對話框 AlertDialog.Builder d = new AlertDialog.Builder(this); d.setTitle(R.string.title_record) .setCancelable(false); d.setPositiveButton(R.string.record_play, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // 播放 Intent playIntent = new Intent( ItemActivity.this, PlayActivity.class); playIntent.putExtra("fileName", recordFile.getAbsolutePath()); startActivity(playIntent); } }); d.setNeutralButton(R.string.record_new, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { goToRecord(recordFile); } }); d.setNegativeButton(android.R.string.cancel, null); // 顯示對話框 d.show(); } // 如果沒有錄音檔,啟動錄音元件 else { goToRecord(recordFile); } break; ... } } ~~~ 同樣在“net.macdidi.myandroidtutorial”套件下的“ItemActivity”類別,找到“onActivityResult”方法,加入設(shè)定檔案名稱的程式碼: ~~~ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { switch (requestCode) { ... case START_RECORD: // 設(shè)定錄音檔案名稱 item.setFileName(fileName); break; ... } } } ~~~ 完成這一章所有的工作了,錄音與播放的功能比較建議在實體的裝置上測試,試試看加入的功能是不是都可以正確的運(yùn)作。 ## 錯誤修正:4-1 使用照相機(jī)與麥克風(fēng) 這一章加入的照相與錄音功能,把照片與錄音檔案名稱儲存在同一個字段。在完成這一章的內(nèi)容后依照下列的步驟修正錯誤: 1. 開啟“Item.java”,加入下列的字段與方法宣告: ~~~ // 錄音檔案名稱 private String recFileName; public String getRecFileName() { return recFileName; } public void setRecFileName(String recFileName) { this.recFileName = recFileName; } ~~~ 2. 同樣在“Item.java”,為建構(gòu)子加入錄音檔案名稱參數(shù): ~~~ // 錄音檔案名稱參數(shù):String recFileName public Item(long id, long datetime, Colors color, String title, String content, String fileName, String recFileName, double latitude, double longitude, long lastModify) { this.id = id; this.datetime = datetime; this.color = color; this.title = title; this.content = content; this.fileName = fileName; // 錄音檔案名稱 this.recFileName = recFileName; this.latitude = latitude; this.longitude = longitude; this.lastModify = lastModify; } ~~~ 3. 開啟“ItemDAO.java”,加入與修改下列的字段宣告: ~~~ ... // 錄音檔案名稱 public static final String RECFILENAME_COLUMN = "recfilename"; ... // 在“FILENAME_COLUMN”下方加入錄音檔案名稱字段 public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + ... FILENAME_COLUMN + " TEXT, " + RECFILENAME_COLUMN + " TEXT, " + // 增加錄音檔案名稱 ..."; ~~~ 4. 同樣在“ItemDAO.java”,修改“insert”方法: ~~~ public Item insert(Item item) { ContentValues cv = new ContentValues(); ... cv.put(FILENAME_COLUMN, item.getFileName()); // 錄音檔案名稱 cv.put(RECFILENAME_COLUMN, item.getRecFileName()); ... } ~~~ 5. 同樣在“ItemDAO.java”,修改“update”方法: ~~~ public boolean update(Item item) { ContentValues cv = new ContentValues(); ... cv.put(FILENAME_COLUMN, item.getFileName()); // 錄音檔案名稱 cv.put(RECFILENAME_COLUMN, item.getRecFileName()); ... } ~~~ 6. 同樣在“ItemDAO.java”,修改“getRecord”方法: ~~~ public Item getRecord(Cursor cursor) { ... result.setFileName(cursor.getString(5)); // 錄音檔案名稱 result.setRecFileName(cursor.getString(6)); // 后續(xù)的編號都要加一 result.setLatitude(cursor.getDouble(7)); ... } ~~~ 7. 同樣在“ItemDAO.java”,修改“sample”方法: ~~~ public void sample() { // 增加錄音檔案名稱參數(shù)“""” Item item = new Item(0, new Date().getTime(), Colors.RED, "關(guān)于Android Tutorial的事情.", "Hello content", "", "", 0, 0, 0); Item item2 = new Item(0, new Date().getTime(), Colors.BLUE, "一只非??蓯鄣男」饭?", "她的名字叫“大熱狗”,又叫\(zhòng)n作“奶嘴”,是一只非??蓯踈n的小狗。", "", "", 25.04719, 121.516981, 0); Item item3 = new Item(0, new Date().getTime(), Colors.GREEN, "一首非常好聽的音樂!", "Hello content", "", "", 0, 0, 0); Item item4 = new Item(0, new Date().getTime(), Colors.ORANGE, "儲存在數(shù)據(jù)庫的資料", "Hello content", "", "", 0, 0, 0); ... } ~~~ 8. 開啟“MyDBHelper.java”,增加數(shù)據(jù)庫版本編號: ~~~ // 數(shù)據(jù)庫版本,資料結(jié)構(gòu)改變的時候要更改這個數(shù)字,通常是加一 public static final int VERSION = 2; ~~~ 9. 開啟“ItemActivity.java”,增加錄音檔案名稱字段變量: ~~~ // 錄音檔案名稱 private String recFileName; ~~~ 10. 同樣在“ItemActivity.java”,增加取得錄音檔案名稱的方法: ~~~ private File configRecFileName(String prefix, String extension) { // 如果記事資料已經(jīng)有檔案名稱 if (item.getRecFileName() != null && item.getRecFileName().length() > 0) { recFileName = item.getRecFileName(); } // 產(chǎn)生檔案名稱 else { recFileName = FileUtil.getUniqueFileName(); } return new File(FileUtil.getExternalStorageDir(FileUtil.APP_DIR), prefix + recFileName + extension); } ~~~ 11. 同樣在“ItemActivity.java”,修改啟動錄音元件的方法: ~~~ public void clickFunction(View view) { int id = view.getId(); switch (id) { ... case R.id.record_sound: // 修改呼叫方法的名稱為“configRecFileName” final File recordFile = configRecFileName("R", ".mp3"); if (recordFile.exists()) { ... } // 如果沒有錄音檔,啟動錄音元件 else { goToRecord(recordFile); } break; ... } } ~~~ 12. 同樣在“ItemActivity.java”,找到“onActivityResult”方法,修改設(shè)定錄音檔案名稱呼叫的方法: ~~~ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { switch (requestCode) { ... case START_RECORD: // 修改設(shè)定錄音檔案名稱 item.setRecFileName(recFileName); break; ... } } } ~~~ 完成全部的修改以后執(zhí)行應(yīng)用程式,測試同一個記事資料照相與錄音的功能。
久久免费视频精彩视频 | 日韩欧美久久免费观看| 色婷婷综合免费在线视频| 国产99不卡免费在线观看| 免费麻豆国产一区二区三区| 北条麻妃裤袜一区二区| 亚洲伊人网在线播放| 午夜影院av在线| 亚洲激情有码一区二区| 中文字幕理伦福利片| 日本vs欧美一区二区三区| 人妻中文字幕一二三区| 国产成人精品视频免费网站| 99精品高清免费在线视频| 中文字幕理伦福利片| 俺去鲁婷婷六月色综合| 国产精品久久久久久久久久69| 欧美日韩亚洲国产ay| 亚洲成人av久久久久| 日本中文国产字幕| 亚洲天堂网av中文字幕| 精品一区二区三区蜜桃臀的优势| 精品美女1区2区3区| 久久久久久人妻无码| 日韩av一区二区三区久久久| 福利精品视频免费观看| 91插插插操美女视频| 性欧美另类sex极品free| 国产有码av一区二区| 俺去鲁婷婷六月色综合| 久久久九九九九九精品6| 国产剧情高清在线观看| 日韩a大片在线观看| 麻豆丝袜美女人妻中文| 激情亚洲一区蜜桃在线 | 大香蕉大香蕉大香蕉大香蕉大 | 亚洲日本精彩视频在线观看| 日韩av中文网址| 亚洲视频欧美视频另类| 久久精品一区二区三区人妻蜜桃| 亚洲精品图片第十八页| 中文字幕一区二区三区六区9区| 国产精品一区二区三区福利| 色综合久久久久久久久| 麻豆丝袜美女人妻中文| 激情四射五月开心六月婷婷| 久久久久久添逼视频| 97国产免费电影网| 日本熟妇人妻在线| 国产精品成人av麻豆| 少妇人妻给我内射视频| 久久久久久久久久久久久熟女a∨| 精品国产一区二区三区制服| 久久精品人妻中文字幕一区| 亚洲国产精品成人精品软件| 亚洲国产精品成人精品软件| 91人妻人人做人碰人人| 嫩草一区二区三区四区中文| 久久久久久久精品综合| 日本少妇人妻xxxx| 国产一区无码在线桃花| 日韩不卡高清视频| 国产精品久久久久久久网站门| 精品99国内中文字幕| av在线免费在线观看av| 欧美一区二区三区激情无套| 亚洲一区二区三区久久aa| 国产三级三级三级三级av精品| 日韩美女影院免费在线观看| 99精品视频在线看17| 国产成AV人片在线观看天堂无码 | 免费色婷婷在线视频| 成人av激情网一区二区三区| 五月婷婷51视频免费| 亚洲av网站女性向在线观看| 亚洲av不卡码在线看| 国产日韩一区二区三区啪啪啪| 日韩av一区二区三区久久久| 新版天堂av资源在线| 日韩一区二区三区水蜜桃| 中文字幕的不卡人妻| 97cao瑟瑟在线观看| 日韩一区二区三区水蜜桃| 日韩不卡一级成人免费视频| 制服巨乳人妻在线| 亚洲狠狠婷婷综合久久a| 一本色道久久亚洲综合精品蜜桃| 亚洲日本精彩视频在线观看| 国产成人av吴梦梦视频| 国产日韩欧美人妻在线观看| 国产一级淫片免费看久久| 日韩av黄片在线观看| 久久久久久人妻无码| 亚洲成人av久久久久| 青青91免费视频| www.色av成人| 中文字幕国产在线观看| 亚洲欧美在线视频播放| 国产精品色呦呦视频免费看 | 久久久久国产精品夜夜夜| 97人妻中文字幕精品视频| 色播网站在线播放| 欧美一级黄片视频看看| 成年美女黄色av网站| 日韩av午夜免费| 日韩精品刺激视频| 日韩欧美 国产精品| 精品人妻一区二区三区人妻视频| 一级片一级片久久精品电影网电影 | 2020日本中文字幕| 91麻豆免费国产在线| 国产成人一区二区三区在线视频| av在线免费观看网站大全| 清纯唯美激情亚洲综合另类| 亚洲国产精选久久| 日韩在线免费视频精品| 亚洲欧美av在线观看| 在线免费av大香蕉| 国产熟女高潮av77777| 亚洲乳大丰满中文字幕少妇av| 久久久成人在线免费视频| 99热这里只有精品网| 久久视频这里都是精品| 麻豆丝袜美女人妻中文| 国产免费一级a男人的天堂| 蜜臀av 麻豆av| 熟妇人妻 一区二区三区中文字幕| 日韩在线中文字幕不卡| 日韩av中文字幕一区| youwu视频在线| 中文字幕av最新资源| w疯狂的少妇2做爰韩国| 亚洲aⅴ欧美综合一区二区三区| 香蕉在线蕉久在线| 久久久久久久久人妻精品 | 欧美中文字幕久久久| 国产欧美版日韩综合| 亚洲天堂性色综合| 精品97人妻无码中文永久| 国产黄色主播网址大全在线播放| 加勒比精品一区二区三区| 99热在线精品免费观看| 精品乱码一区二区三四五六区| 亚洲精品一区二区三区丝袜| 欧美熟妇人妻视频在线| 最美人妻一区二区三区| 亚洲国产精品久久久久婷婷av| 999精品插丰满少妇人妻| 91超碰免费在线播放| 欧美人妻一区二区三区在线播放| 人人妻人人澡人人看| 日韩 美女 在线观看| 91国偷自产一区二区三区老熟女| 最新偷窥偷拍免费视频观看 | 欧美中文字幕在线观看视频| 人妻熟女视频免费观看| 久久亚麻亚洲蜜桃臀| 日韩成人免费电影三区| 少妇惨叫久久久久久久| 人妻丰满精品一区二区三区| 北条麻妃裤袜一区二区| 99爱99久久久久久久久久| 国产日本精品久久久久| 色噜噜狠狠躁夜夜躁| 最美人妻一区二区三区| 人人妻人人澡人人看| 热久久免费频精品18| 中文字幕理伦福利片| 91沈先生探花极品在线| 天天日天天干天天爱天天| 精品日韩色国产在线观看| 成人av电影免费版| 久久久国产精品尤物av| 亚洲综合在线伊人| 久久久久久久免费女人体| 亚洲综合成人久久av| 欧美一区二区三区成人免费看| 亚洲欧美日韩综合专区| 麻豆丝袜美女人妻中文| 热香蕉和冷香蕉功效一样吗| 午夜精品久久久久久久久二区三区| 97人妻人人揉人人澡人人爽国产| 久久久久久最新精品| 青青草青青操在线播放| 中文字幕av最新资源| 亚洲欧洲黄色图区| 精品久久久久久亚洲国产999| 91在线精品国自产拍| 国产高潮国产高潮久久久久久91| 国产又大又长又粗又硬免费视频 | 日韩一区二区三区乱码| 2023亚洲男人的天堂| 婷婷丁香花五月天| 色综合色综合色综合久久| 欧美日韩国产一区二区三区免费 | 亚洲av微乳在线| 婷婷亚洲天堂中文字幕| 亚洲欧洲国产一区二区| 日韩av在线不卡网站| 91久久亚洲成人精品| 综合激情五月天久久| 一本色道久久亚洲综合精品蜜桃| 精品国产久久久久蜜臀| 久久久亚洲在线视频| av在线免费播放成人| 最美人妻一区二区三区| 日韩中文字幕在线综合网| 亚洲欧洲久久精品| 蜜桃av 1区二区| www.视频一区二区三区| 91天仙tv国产福利精品| 777亚洲精品乱码久久| 亚洲一区二区三二区厕所偷拍 | 日韩乱妇乱女熟妇熟女网红 | 成人免费av在线网站| 丰满人妻一区二区三区av| 亚洲欧洲av在线| 亚洲欧美自拍偷拍在线观看| 91国偷自产一区二区三区偷拍| 日韩欧美激情入口| 中文字幕 日本伊人| 福利一福利二福利三| 欧美一区二区三区视频午夜| 国产欧美一区二区二区精品| 久久草免费在线视频| 精品无人区一区二区三区竹菊| 青青91免费视频| 久久伊人精品青青草原| 成人av电影免费版| 欧美日韩成人三级在线| 亚洲中文字幕福利视频| w疯狂的少妇2做爰韩国| 国产69tv精品久久| 国产成人无码AA精品一区 | 国产欧美日韩制服丝袜在线| 1024 国产高清の最新合集| 久久久久久久久人妻精品| 中文字幕日韩久久精品tv| 国产一区二区久久久久久| 久久国产经典三级av| 欧美精品一区二区三区蜜臀| 麻豆视传媒官网直接进入免费观看 | 人妻一区二区中文字幕在线| 中文字幕av最新在线| 日韩av电影com| 久久99国产综合精品无码免费| 大尺度av一区二区三区| 欧美va亚洲va精品| 麻豆免费国产福利免费国产福利| 日韩高清av一区| 高清视频在线观看一区二区三区| 蜜桃久久久一区二区三区| 91在线播放视频免费| 欧美日韩亚洲国产ay| 久久视频在线免费播放| 久久久久久久久久久久久熟女a∨| 另类欧美亚洲中文综合| 一级片一级片久久精品电影网电影| 天天操天天干天天做天天射| 亚洲乱精品中文字字幕| 欧美人妻a∨中文字幕在线| 国产日韩av免费一区二区三区| 国产日韩av免费一区二区三区| 国产精品久久久久一区二区| 清纯唯美激情五月| 日韩福利视频在线看| 亚洲av色图com| 免费a级电影在线观看| 日韩成视频在线播放| 日韩二区不卡视频| 最新美女激情av| 日本熟妇乱子伦a片在线观看| 日韩av电影com| 精品国产乱码久久久久久蜜坠欲下| av在线免费在线观看av| 精品国产一区二区三区无码蜜桃| 久久久久久精品国产成人| 免费色婷婷在线视频| 人妻一区二区三区巨免费| 明天我们好好过高清免费| 91久久国产综合久久91在线| 在线观看日韩美视频一区| 日日夜夜夜视频伊人久久| 十八禁久久久久久久久久久久久久| 日韩在线免费视频精品| 国产欧美日韩一区二区三区''| 亚洲久久亚女同性| 中文字幕日韩久久精品tv| 亚洲欧美日韩国产另类专区| 蜜臀久久99精品久久久久久久久| 婷婷 少妇 av| 日韩中文字幕一区二区三区四区 | 久久成人网男人的天堂| 日韩有码在线免费观看视频| 日韩a v日日夜夜| 国产一区二区三区四区中文字幕 | 天天色天天干天天舔| 亚洲熟妇免费在线视频| 在线观看日韩美视频一区| 208精品福利导航| 久久久久国产精品夜夜夜| 日韩卡一卡二卡三卡四卡五| 蜜桃视频在线观看一区精品| 国产黄色主播网址大全在线播放| 久久九特黄的免费大片| 久久精品国产久精果冻传媒| 热热久久这里只有精品| 欧美激情欧美情色成人在线| 另类h小视频在线观看| 久久av一区中文字幕| 午夜影院av在线| 久久久久国产麻豆婷婷| 亚洲制服欧美丝袜| www.视频一区二区三区| 亚洲国产精品午夜av| 人人狠狠久久综合网| 日本最新中文字幕| 日韩男女av在线观看| 国产高潮好爽受不了了视频| 日韩一区二区三区乱码| 高清视频在线观看一区二区三区| 91免费版下载成人| 亚洲天堂av电影| 日韩国产91综合精品| 日韩卡一卡二卡三卡四卡五| 美国av 在线播放| 中文在线字幕a在线| 91亚洲精品成人在线| 日韩av中文网址| 久久在线人妻熟女高清完整版| 中文字幕在线视频亚洲| 色视频精品视频在线观看| 香蕉久久a v一区二区三区| 久久婷婷亚洲中文一区二区| 高清一区二区日韩视频精品| 女人体内射精一区二区三区| 成人av激情网一区二区三区| 99日本亚洲精品视频| 日韩中文字幕在线网站| 久久视频一区二区三| 午夜在线观看高清完整版| 超碰97在线观看国产| 日韩av在线观看卡一卡| 中文字幕一区二区三区中文字幕 | 日韩在线播放视频1区| 少妇人妻给我内射视频| 黄色片一级美女黄色片| 激情亚洲一区蜜桃在线| 午夜探花在线免费观看| 国产一区二区高清在线播放| 另类蜜桃刺激视频在线观看| 9久热这里有国产精品 | 97网视频免费在线观看| 日韩欧美 国产精品| 日韩av中文网址| 97国产免费电影网| 欧美高清在线视频99| 日韩av一区中文| 91免费av在线观看| 一本久久久久久久18| 人人妻人人爱碰千| 国产成AV人片在线观看天堂无码| 99九九99九九热视频| 久久视频在线免费播放| 亚洲国产欧美日本视频| 日韩视频在线观看一区二区| 欧美一区二区三区成人久久片 | 日韩av电影免费在线播放| 亚洲天堂网av中文字幕| 高清一区二区日韩视频精品| 91国产手机视频在线观看| 日韩在线观看免费全集网站| 92视频影院视频影院麻豆| 国产精品亚洲精品成人| 国产一级av国产免费| av色香蕉一区二区三区| 久久久免费精品少妇| 久久亚洲AV成人无码| 日韩日韩av在线| 亚洲欧洲国产一区二区| 热热久久这里只有精品| 99久久久免费毛片基地| 国产成人一区二区三区在线视频| 欧美日韩一区二区综合视频| 欧美熟女vides| 久久精品国产久精果冻传媒| 亚洲精品网站成人久久综合| 明天我们好好过高清免费| 欧美一区二区三区激情啪啪啪| 亚洲精品久久久久久无几年桃| 香蕉久久a v一区二区三区| 日韩一级黄色大片免费观看| 熟女激情一区二区三区| 91久久婷婷国产麻豆精品| 麻豆精品一区在线免费观看| 视频免费在线观看91| 久久久97精品国产| 久久伊人亚洲综合网| 久久人搡人人玩人妻精品| 日本黄色成年视频| 青青91免费视频| 欧美日本韩国乱搞视频| 成人免费av在线网站| 最新亚洲国产中文字幕av| 一本一道久久a久久久| 在线国产小视频麻豆| 亚洲久久精品午夜| 久久综合中文字幕一区二区三区 | 俺去鲁婷婷六月色综合| 欧美又色又爽又黄又粗暴| 天堂av最新资源在线| 91在线播放视频免费| 天天色综合天天射综合| av色香蕉一区二区三区| 蜜臀av 麻豆av| 日韩不卡高清视频| 国产成人精品视频免费网站| 成人黄视频在线播放| 人妻啪啪视频免费看| 日产av一区二区在线观看| 欧美人妻一区二区三区在线播放| 亚洲成人久久久久| 国产自拍 偷拍 在线| 中文字幕av最新资源| 国产一区二区三区黄色| 精品久久久久久18免费网站| av岛国不卡在线观看| 日韩精品综合视频在线| 精品视频在线观看一区二区97 | 成人精品一区一区二区看片| 国产一区二区免费五遮挡| 欧美日韩精品综合在线一区二区| 亚洲 自拍偷拍 欧美| 久久在线人妻熟女高清完整版| 91在线国产九色porny| 日韩午夜精品啪啪啪| 国产精品久久久久久久久久网站| 亚洲成a人片,77777| 蜜桃久久久一区二区三区| 国产又粗又硬又长又爽视频| 久久精品人妻中文字幕一区| 日韩亚洲丝袜系列| 色综合色综合色综合久久| 高潮久久久久久久av免费| 麻豆丝袜美女人妻中文| 99久久精品国产777| 欧美日韩国产色图视频| 国产 欧美 日韩 视频| 国产五月天在线观看视频| 日本中文字幕久久免费精品| 91久久婷婷国产麻豆精品| 日韩 美女 在线观看| 99热在线精品免费观看| 亚洲欧洲国产一区二区| 日本久久久大片中文字幕| 18久久久免费视频| 中文字幕av最新资源| 日韩在线啊啊啊的视频| 日韩一级黄色大片免费观看| 50岁老熟女一区二区三区| 亚洲国产精品综合久久2007| 68国产成人综合久久精品| 香蕉久久a v一区二区三区| 久久国产精品色av免费看| 中文字幕一区二区三区六区9区| 9久久国产精品一区二区| 91久久精品日日躁夜夜躁| 欧美日韩精品综合在线一区二区| 色婷婷久久久swag精品| 精品久久一区电影亚洲| 一区二区 熟女人妻| 狠狠久久综合丁香777米奇| 91丝袜放荡丝袜脚交| 久久综合久久综合大香蕉| 欧美精品一区二区三区蜜臀 | 精品国产一区二区三区无码蜜桃 | 美女在线观看亚洲一区| 丝袜日韩中文字幕| 久久亚洲精品无码系列客服| 精品国产乱码久久久久久蜜坠欲下| 亚洲久久精品午夜| 欧美人妻系列,中文字幕| www日本不卡一二三区| 亚洲国产欧美日本视频| 精品国产精品视频免费在线观看| aaa久久久久久久久久网站 | 日韩免费美女电影| 精品国产一区二区三区无码蜜桃 | 大尺度av一区二区三区| 蜜臀久久久久精品一区二区三区| 一本久久久久久久18| 玖玖玖玖日在线视频| 中文字幕熟女人妻在线观看| 亚洲五月婷婷视频| 国产一区二区免费五遮挡| 中文字幕av最新资源| 精品人妻一区二区三区人妻视频| 自拍偷拍亚洲欧美另类| 亚洲人妻中文字幕av首页| 99久久999久久久精品综合| 亚洲激情网在线播放| 亚洲乱精品中文字字幕| 天天操天天爽天天舔天天操一操| 天天射天天舔天天射| 天天操天天干天天色| 国产精品综合手机在线| 国产精品一区二区三区三级| 久久久久国产精品免费| 日韩av在线观看卡一卡| 日韩a毛片视频免费看| 欧美日韩国产一级一顶级| 麻豆亚州av熟女国产一区二| 日韩精品综合免费视频| 日韩卡一卡二卡三卡四卡五| 麻豆成人在线免费观看视频| 久久久久久久黄色午夜精品| 三级亚洲天堂亚洲天堂| 国产日韩亚洲大尺度高清| 人妻精品一区二区在线播放| 亚洲欧洲色图动图| 久久久久在线免费看| 天天射天天舔天天射| 久久久久久精品国产成人| 日韩欧美爱爱视频免费观看| 日本加勒比中文字幕久久| 91精品久久久久久久久不卡网站| 制服巨乳人妻在线| 99re在线精品国产欧美久久| av国偷自产自拍自在线| 欧美一区二区三区视频午夜| 欧美日韩精品在线观看免费| 欧美日韩一区二区综合视频| 日韩成人免费电影三区| 亚洲欧洲黄色图区| 国产又粗又黄又大又长视频| av青青草原在线观看| 日韩av黄片在线观看| 日本女优中文字幕在线| 91精品国产综合久久久久久粉嫩| 日韩精品少妇人妻熟女| 天天日天天干天天爱天天| www.亚洲成人色| 91久久国产综合久久91在线| 日韩欧美一二三级| 精品蜜臀久久久久抄底| 91影视一区二区三区| 天天操天天干天天妻| 日韩av在线观看免费看看| 91丝袜放荡丝袜脚交| ass日本丰满熟妇pics| 18禁成年av网站免费看| 国产精品一区二区亚瑟不卡| 精品国产久久久久99| 国产69tv精品久久| 91人妻人人妻人人爽| 午夜国产福利电影| 美女免费一二三区视频| 免费人妻一区二区三区免费视频 | 日韩 美女 在线观看| 肥臀熟女一区二区三区肥女人| 色综合精品一区二区三区| 国产有码av一区二区| 日韩久久久三级电影| 少妇人妻给我内射视频| 91高级会所在线播放| 婷婷中文字幕色婷婷| 精品久久久久久18免费网站| 麻豆网站在线免费看| 久久久久中文字幕免费久久久久久| 亚洲第一黄色天堂| 欧美熟女高清视频一区二区| 国产精品久久久久久久漫画| 日韩美女夜夜爽av| 亚洲女人老师毛茸茸| 人人狠狠久久综合网| 国产精品色呦呦视频免费看| 91成人国产精品视频| 日韩av在线观看卡一卡| ass日本丰满熟妇pics| 日韩中文字幕视频在线播放| 另类h小视频在线观看| 激情亚洲一区蜜桃在线| 欧美日韩亚洲国产ay| 蜜桃精品一区二区三区在| 中文字幕亚洲中文字幕| 国产欧美一二三区视频| 日本女同性恋视频| 天天色天天日天天操| 高清视频在线观看一区二区三区| 青青91免费视频| 厕所偷拍视频一区二区三区| 久久精品熟女人妻一区二区三区| 精品一区二区三区蜜桃臀的优势| 色婷婷国产熟妇人妻露脸| 亚洲av综合久久伊人| 91久久亚洲成人精品| 日韩精品福利性无码专区| 精品久久久久久999| av日韩在线有码a区| 久久久久久久免费女人体| 亚洲 自拍偷拍 欧美| 日韩精品少妇人妻熟女| 亚洲欧洲色图动图| 福利精品视频免费观看| 亚洲综合精品久久| 欧美人妻系列,中文字幕 | 亚洲av网站女性向在线观看| 久久国产精品——国产精品| 日本熟妇乱子伦a片在线观看 | 91一区二区精品在线| 亚洲国产精品久久久久婷婷av| 日韩精品综合视频在线| 蜜桃视频在线观看一区精品| www.色av成人| 88在线观看91蜜桃国自产| 国产欧美日韩亚洲另类第一第二页 | 欧美一区二区三区成人久久片| 91插插插操美女视频| 国产自拍 偷拍 在线| 青青草青青操在线播放| 欧美va亚洲va精品| 亚洲国产aⅴ精品一区二区欧美 | 国产探花在线播放精品| 中文字幕版婷婷久久| 国产精品久久久久成人片| 精品久久久久久亚洲国产999| 人人妻人人爱碰千| av蜜臀懂色啊啊啊| 欧美激情欧美情色成人在线| 日韩有码在线免费观看视频| 色视频在线观看123| 日韩av 自拍偷拍| 国产日韩欧美人妻在线观看| 五月激情婷婷网络| 国产自拍 偷拍 在线| 人妻熟女视频免费观看| 99爱99久久久久久久久久| 97偷拍视频在线观看| 亚洲午夜电影久久久| 青娱乐国产视频盛| 99re6热在线视频免费观看| 国产成人精品视频免费网站| 久久精品国产91久久麻豆自制 | 国产乱人妻精品久久久| 亚洲综合成人久久av| 2020日本中文字幕| 精品欧美日韩国产在线| www.亚洲成人色| 日韩av一区中文| 日韩一区二区三区乱码| jizzhd国产剧情| 激情黄色开心五月天| 欧美亚洲av日韩综合一区| 色婷婷国产熟妇人妻露脸| 精品美女1区2区3区| 在线不卡日韩视频播放| 亚洲 免费 在线 观看| 国产日韩亚洲大尺度高清| 亚洲成人影院中文字幕| 亚洲另类色区欧美日韩| 日韩在线播放视频1区| 9久热这里有国产精品| 欧美日本韩国乱搞视频| 国产91久久久久久久| 四虎国产精品久久免费精品| 91偷拍老熟女露脸合集| www.成人国产精品| 草裙成人精品一区二区三区| 日本熟妇乱子伦a片在线观看| 天天色天天日天天操| 婷婷激情五月天图片| 在线观看色有小视频| 久久人人爽爽人人爽av| 欧美精品一区二区三区蜜臀 | 97人妻人人揉人人澡人人爽国产| 国产精品色呦呦视频免费看| 日韩不卡一级成人免费视频| 久久精品香蕉绿巨人| 人人狠狠久久综合网| 日韩av电影com| 日本亚洲天堂久久| a级黄片在线免费观看| 在线观看视频 你懂得| 五月婷婷激情四射综合网| 精品人妻熟女在线视频| 91亚洲精品成人在线| 久久人搡人人玩人妻精品| 另类欧美亚洲中文综合| 亚洲国产精品97久久宅男| 麻豆精品123在线观看| 91中文字幕制服诱惑| 篠田优中文字幕在线播| 国产+日本+欧美在线观看| 中文字幕在线有码二区| 日韩不卡高清视频| 日韩日韩av在线| 9久热这里有国产精品| 久久久久久人妻无码| 99久久国语露脸精彩对白| 337p亚洲精品色噜噜| 人妻中出视频一区二区| 久久九特黄的免费大片| 麻豆精品123在线观看| 久久精品人人看人人爽| 91一区二区精品在线| 91精品一二三区在线观看 | 国产精品久久久久一区二区| 丰满的人妻一区七区| 国产91久久精品一区二区老| 亚洲制服高清中文字幕| 欧美亚洲av日韩综合一区| 日韩欧美 国产精品| 97人妻人人揉人人澡人人爽国产| 精品人妻一区二区三区√| 日本熟妇乱子伦a片在线观看| 国产日本精品久久久久| 99热精品国产影视久久久影院 | 久久av资源男人站| 亚洲五月婷婷视频| 欧美人妻激情中文视频| 久久爱免费视频16| 午夜日韩麻豆福利| 亚洲精品乱码97久久久久久| 欧美日韩在线观看大香蕉| 国产精品一区二区三区三级| 日韩欧美综合一区二区在线| 日韩精品在线视频播放| 国产一区二区三区女同| 精品国产乱码久久久久夜深| 欧美精品一区二区在线视频| 久久国产精品久久伊人麻豆 | 久久久久国产亚洲av麻豆| 欧美老熟妇重口另类xxx| 一区二区三区乱码视频| 欧美日韩在线卡一卡二卡三| 天天操,天天干,天天| 91亚洲国产成人久久精品app| 影音在线精品免费国产资源| 欧美日韩精品在线观看免费| 人妻人人揉人人澡人人| 99精品视频69v精品视频| 欧美va亚洲va精品| 成人黄视频在线播放| 久久久久久久免费女人体| 91精品人妻一区二区三区四区| 天天色综合天天射综合| 99精品高清视频一区二区| 99国产在线 精品 视频| 99九九99九九热视频| 人妻精品少妇嫩草麻豆| w疯狂的少妇2做爰韩国| 国产欧美日韩制服丝袜在线| 人妻夜夜爽天天爽麻豆| 成年美女黄色av网站| 欧美老熟妇重口另类xxx| 91综合精品国产丝袜长腿| 久久午夜福利电影免费试看| 婷婷在线综合观看视频| 91在线无精精品一区二区| 亚洲国产精品久久久久婷婷av| 日韩成人免费电影三区| 欧美日韩在线卡一卡二卡三| 中文字幕一区二区不卡顿| 日韩av网址在线播放| 欧美日韩在线卡一卡二卡三| 亚洲激情国产一区| 日韩av网址在线播放| 日本中文国产字幕| 亚洲乱精品中文字字幕| 亚洲精品网站成人久久综合| 中文字幕亚洲中文字幕| 2019年中文字幕在线看| 中文字幕久久91| 日本熟妇乱子伦a片在线观看| 亚洲:西西一区二区三区四区五区| 亚洲综合色激情五月| 日韩乱妇乱女熟妇熟女网红| 99久久999久久久精品综合| 精品一区二区三区四区人妻69| 欧美中文字幕在线观看视频| 又粗又猛又爽黄老大爷视频| 高清中文字幕乱码在线| 中文字幕日韩天堂| 99热这里只有的精品| 婷婷激情五月天图片| 夜夜撸日日撸夜夜爽日日干| 精品成人1区2区3区在线看片| 国产高潮好爽受不了了视频| 欧美日韩亚洲大片在线| av在线免费在线观看av| 国产 欧美 日韩 视频| 亚洲一线产区二线产区区| 亚洲国产欧美激情图区| 青草青草视频免费2在线观看| 亚洲av微乳在线| 麻豆成人在线免费观看视频| 成人免费av在线网站| 97久久视频免费在线播放| 欧美视频 亚洲视频| 日韩av在线观看免费看看| 日韩三级伦理片免费看| 午夜影院av在线| 日本女优和黑人的| 秋霞电影韩国一区二区二区三区| 97cao瑟瑟在线观看| 日本最新中文字幕| 精品国产一区二区三区无码蜜桃| 国产精品久久久久久久久久69| 欧美中文字幕久久久| 91久久婷婷国产麻豆精品| 精品97人妻无码中文永久| 色婷婷久久久swag精品| 欧美 国产 日韩 一区二区| 国产91色在线i免费| 欧美熟妇人妻视频在线| 久久久96精品久久久| 人妻办公室被强d在线电影| 5858s在线视频| 日韩av在线观看卡一卡| 精品97人妻无码中文永久| 少妇激情视频一区二区| 99日本亚洲精品视频| 日韩精品刺激视频| 成人黄色国产网站在线观看| 亚洲自拍偷拍 av| 日韩三级伦理片免费看| 久久久久女优免费视频| 欧美日韩综合国产精品| 俺去鲁婷婷六月色综合| 亚洲熟妇免费在线视频| 久久五月婷婷综合视频| 亚洲欧洲偷拍自拍| 亚洲国产精品综合久久2007| 久久精品人妻中文字幕一区| 久久2020精品免费网站| 国产亚洲精久久久久久无码色戒| 99精品视频在线看17| 在线免费观看日韩精品视频| 中文字幕理伦福利片| 91人妻精品久久久久久久久| 亚洲熟妇av日韩熟妇在线| 日本高清不卡视频在线播放| 91免费版下载成人| 亚洲乳大丰满中文字幕少妇av| 青青草成人影院在线观看| 亚洲五月婷婷视频| 97国产人妻换人妻| 欧美日韩精品欧美日韩| 搡老熟女一区二区三区老熟女| 五月激情爱爱婷婷| 丰满的人妻一区七区| 91精品人妻一区二区三区四区| 日韩在线中文字幕不卡| 秋霞在线观看色哟哟视频| 91精品人妻一区二区三区四区| 91啪啪啪内射网站| 蜜臀久久久久精品一区二区三区| 亚洲精品久久久久久无几年桃| 日本aaaa视频在线观看| 四虎网站免费av| 91免费av在线观看| 久久久精品欧美一区二区国产| 国产麻豆剧传媒精品视频| 亚洲国产精选久久| 欧美精品一区二区三区蜜臀| 亚洲精品图片第十八页| 天天色天天干天天舔| 视频在线观看黄页| 人妻精品少妇嫩草麻豆| 亚洲狠狠久久综合一区| 狠狠久久综合丁香777米奇| 在线中文免费黄色| 日韩在线观看免费全集网站| 五月天丁香婷婷国产| 中文字幕亚洲中文字幕| 伊人久久中文字幕综合观看| av成人教育在线播放| 亚洲国产精品五月天久久久| 亚洲不卡一区av| 精品久久中文字幕系列| 麻豆视传媒官网直接进入免费观看| 国产精品久久久久久久漫画| 欧美日韩国产色图视频| 精品999久久久一免费ww| 精品97人妻无码中文永久| youwu视频在线| 视频一区视频二区三区| 日韩精品综合视频在线| 亚洲国产精品久久久久婷婷av| 91影视一区二区三区| 久久国产精品久久伊人麻豆| 五月婷婷久久久久久久久| 中文字幕精品久久久人妻| 国产自拍 偷拍 在线| 欧美日韩精品在线观看免费 | w疯狂的少妇2做爰韩国| 日韩av福利大片在线观看| 亚洲五月婷婷激情图片| 日韩视频在线播放一区二区| 高潮久久久久久久av免费| 亚洲天堂性色综合| 亚洲阿v天堂久久| 五月综合婷婷婷婷婷婷| 精品一区二区国产在线观看| 亚洲精品熟女中文字幕| www.视频一区二区三区| 色婷婷国产熟妇人妻露脸| 福利一福利二福利三| 久久人妻久久人妻一区| 国产免费一级a男人的天堂| 蜜臀av一区二区三区人妻少妇| 国产亚洲欧美日韩在线首页| 久久视频黄色观看网站| 国产91极品身材白皙| 日本高清理论片中文字幕| 国产精品成人av在线网站 | 欧美va亚洲va精品| 日韩在线播放视频1区| 97人妻人人揉人人澡人人爽国产| 91啪啪啪内射网站| 亚洲欧美日韩一区17c| 五月婷婷51视频免费| 久久久久久久久人妻精品| 篠田优中文字幕在线播| 久久久久久少妇被弄高潮| 欧美精品一区二区在线视频| 免费麻豆国产一区二区三区| 国产av一区二区三区天美| 精品一区二区国产在线观看| 日本最新中文字幕| 亚洲中文字幕成人久久| 久久蜜臀精品一区二区| 亚洲欧美av在线观看| 欧美中文字幕视频网| 日韩欧美综合一区二区在线| 婷婷基地中文字幕| 亚洲天堂性色综合| 欧美中文字幕久久久| 青青青高清国产视频| 91国产手机视频在线观看| 国产又粗又黄又大又长视频| 亚洲国产精品五月天久久久| 精品视频在线观看一区二区97| 亚洲天堂av电影免费在线| 日韩欧美国产成人一区| 日韩av 自拍偷拍| 麻豆视传媒官网直接进入免费观看 | 精品国产精品视频免费在线观看| 先锋资源站中文字幕| 久久久精品99国产国产精| 亚洲:西西一区二区三区四区五区| 精品人妻二区中文字幕| 少妇人妻视频在线观看| 99国产在线 精品 视频| 五月综合缴情婷婷六月| 精品无码久久久久久毛片| 欧美视频 亚洲视频| 天天日天天干一道一小| 久久精品久久一区二区三区| 久久九特黄的免费大片| 中文字幕日韩久久精品tv| 国产91久久久久久久| 玖玖资源站中文字幕一区二区| 亚洲av综合久久伊人| 色婷婷综合免费在线视频| 欧美视频 亚洲视频| 97成人免费碰碰碰视频| 人妻丰满精品一区二区三区| 国产一区二区视频大全床| 久久久久久久夜精品精品| av一级二级三级久久久| 中文字幕亚洲中文字幕| 国产日韩亚洲大尺度高清| 日韩欧美激情入口| 久久这里只有欧美精品| 99热2这里只有精品| 91porny国产九色| 午夜寻花美女在线| 色yeye香蕉凹凸人妻三区| 亚洲 欧美 自拍 中文| 欧美视频 亚洲视频| 麻豆在线视频看片免费| 日韩av中文网址| 久久综合久久综合久久色| 欧美日韩久久久久久精品| 日韩在线啊啊啊的视频| 中文字幕婷婷网站| 秋霞在线观看色哟哟视频| 欧美日韩精品成人在线| 97人妻中文字幕精品视频| 激情黄色开心五月天| 综合激情五月天久久| 中文字幕成人资源网站| 久久爱免费视频16| 国产av在线观看麻豆| 人妻精品一区二区在线播放| 亚洲精选黄色在线观看| 中文字幕一区二区三区六区9区| 免费人妻一区二区三区免费视频| 人妻人人揉人人澡人人| 精品久久中文字幕系列| 国产91熟女免费视频| 91人妻人人妻人人爽| 九九re精品免费视频| 中文字幕版婷婷久久| 秋霞电影韩国一区二区二区三区| 亚洲少妇黄色一级片| 1024欧美一区二区看片| www.视频一区二区三区| 国产中文字幕在线91| 久热中文字幕在线精品| 日韩黄色一级大片| 国产91久久精品一区二区老| 国产五月天在线观看视频| 日韩a视频在线播放视频| 婷婷中文字幕色婷婷| 欧美一区二区三区,| aaa久久久久久久久久网站| 日韩人妻插舔激情午夜| 之久精品一区二区| 亚洲精选黄色在线观看| 一级片一级片久久精品电影网电影| 国产成人精品久久综合| 88av亚洲精品日韩一区二区| 人妻丰满一区二区三区| 91在线无精精品一区二区| 秋霞在线观看色哟哟视频| 91精品欧美久久久久视频| 免费中文字幕在线播放| 色yeye香蕉凹凸人妻三区| 日韩在线观看免费全集网站| 久久久久久最新精品| 欧美激情 另类视频 亚洲| 亚洲欧美av在线观看| 婷婷丁香花五月天| 日韩人妻插舔激情午夜| 亚洲一线产区二线产区区| 日韩av手机在线电影| 日韩美女影院免费在线观看 | 七十路熟女俱乐部| 日本a级2020在线观看| 亚洲国产aⅴ精品一区二区欧美| 国产日本精品久久久久| 久久久久久久黄色午夜精品| 久操免费福利在线视频观看视频 | 日韩高清av一区| 亚洲青青青国产观看视频| 欧美激情欧美情色成人在线| 日本高清理论片中文字幕| 97网视频免费在线观看| 精品无人区一区二区三区竹菊| 亚洲香蕉av电影| 日韩免费美女电影| 人妻精品少妇嫩草麻豆| 91精品人妻一区二区三区四区| 日韩精品少妇人妻熟女| 97国产免费电影网| 久久久久国产麻豆婷婷| 天美麻豆成人av精品小说| 亚洲另类色区欧美日韩| 婷婷午夜美女诱惑福利电影网| 久久久久女优免费视频| 欧美人妻a∨中文字幕在线| 亚洲av综合久久伊人| 午夜精品久久婷婷蜜桃| 少妇人妻成人在线| 中文国产成人精品久久一| 久久人妻久久人妻一区| 激情黄色开心五月天| 精品蜜臀久久久久抄底| 欧美日韩精品亚洲欧美| 亚洲自拍偷拍色图区| 欧美日本一道本一区二区| 精品97人妻无码中文永久| 牛牛成人手机视频在线| 国产无av码在线观看| 国产 日韩 欧美 日本| 亚洲激情视频在线视频| 最新精品成人在线| 色哟哟视频在线一区| 亚洲成a人片7777| 久久久久久久久久久久久熟女a∨| 视频一区视频二区三区| 狠狠久久综合丁香777米奇| 国产乱子伦视频免费| 人人狠狠久久综合网| 亚洲香蕉av电影| 91人妻人人妻人人爽| 亚洲av精品久久久蜜| 青青草国产福利视频| av传媒高清影院免费| 免费麻豆国产一区二区三区| 丝袜日韩中文字幕| 久久99永久免费看| 日韩中文字幕理伦| 成年人免费看黄色片| 亚洲乱精品中文字字幕| 婷婷在线综合观看视频| 欧美激情 另类视频 亚洲| 97人妻人人揉人人澡人人爽国产 | 日韩亚洲图色在线| 安斋拉拉中文字幕在线| 日韩在线中文字幕不卡| 日韩精品久久久久久久软件| 久久久精品蜜桃在线| 日韩一级黄色大片免费观看 | 国产无av码在线观看| 亚洲欧美在线视频播放| 亚洲国产精品久久久久婷婷av| 91超碰免费在线播放| 日韩欧美三级一区二区在线观看| 日韩av在线观看卡一卡| 久久综合久久综合久久色| 国产91色在线i免费| 天天日天天干天天色| 国产又粗又黄又大又长视频| 亚洲精品久久第一页| 中文字幕熟女人妻乳一区二区 | 日韩欧美久久免费观看| 97人人人欧美人人妻人人| 日韩av在线天堂| 色综合精品一区二区三区| 亚洲激情网在线播放| 免费av网站在线浏览| 久操免费福利在线视频观看视频| 蜜臀久久99精品久久久久久久久| 日韩大全毛片免费观看视频| 天天日天天干天天爱天天| 亚洲aⅴ欧美综合一区二区三区| 5858s在线视频| 精品国产丝袜久久久一区二区| 精品乱码一区二区三四五六区| 亚洲香蕉av电影| 人妻av不卡一区二区三区| 91久久国产综合久久91在线| 亚洲 自拍偷拍 欧美| 91嫩草17c欧美国产| 久久爱免费视频16| 国产精品99久久久高清| 人妻精品少妇嫩草麻豆| 日韩av在线点播| 成人精品一区一区二区看片| 国产日韩亚洲大尺度高清| 北条麻妃裤袜一区二区| 欧美日韩综合国产精品| 久久最近最新中文字幕大全| 天天做天天舔天天射| 久久热最新视频在线观看| 七十路熟女俱乐部| 午夜寻花美女在线| 国产清纯白嫩美女无套| 我要看一级国产黄色绿像| 欧美日韩人妻久久精品| 99久久久99久久91熟女| 美国av 在线播放| 亚洲欧洲av在线| 少妇人妻给我内射视频| 国产成人av吴梦梦视频| 亚洲一区二区三区久久aa| 中文字幕一区二区三区六区9区| 欧美肥臀精品一区二区三区| 亚洲综合成人久久av| 欧美日韩在线观看大香蕉| 久久伊人精品青青草原| 日韩欧美不卡一区二区三区五区| 精品国产久久久久99| 久久久久久最新精品| 精品一区二区国产在线观看| 青草青草视频免费2在线观看 | 精品乱码一区二区三四五六区| 久久传奇网站一区三区视频| japanese 在线中文字幕| 91制片在线观看视频| 四虎网站免费av| 秋霞在线观看色哟哟视频| 日日碰狠狠躁久久躁一区二区| 2020日韩中文字幕| 久久久久999蜜桃视频| 激情五月天狠婷婷| 精品一区二区国产在线观看| 天天色综合天天射综合| 国产99不卡免费在线观看| 精品美女1区2区3区| 成人黄视频在线播放| 色婷婷精品午夜在线播放| 人妻中出视频一区二区| 91大神精品大长腿在线观看 | 精品日韩偷拍欧美另类| 国产成人av最新网址| 久久视频这里都是精品| 中文字幕一区二区三区中文字幕 | 91国产手机视频在线观看| 日韩在线观看免费全集网站| 精品一区二区三区蜜桃臀的优势| 嫩草一区二区三区四区中文 | 97精品久久人人爽人人爽| 国产精品色呦呦视频免费看 | 9久热这里有国产精品| 中文字幕在线有码二区| 精品97人妻无码中文永久| www.199麻豆在线视频| 精品久久精品久久久久| 亚洲激情国产一区| 一本大道av伊人久久综合| av在线免费观看网站大全| 三级亚洲天堂亚洲天堂| 91偷拍老熟女露脸合集| 牛牛成人手机视频在线| 国产一区无码在线桃花| 久久爱免费视频16|