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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android之mediarecorder中的方法以及工作流程的过程

發布時間:2023/12/4 Android 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android之mediarecorder中的方法以及工作流程的过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
嵌套、關聯的類

?

class

MediaRecorder.AudioEncoder

定義音頻編碼

class

MediaRecorder.AudioSource

定義聲音資源

interface

MediaRecorder.OnErrorListener

Interface definition for a callback to be invoked when an error occurs while recording.?

interface

MediaRecorder.OnInfoListener

Interface definition for a callback to be invoked when an error occurs while recording.?

class

MediaRecorder.OutputFormat

定義輸出格式

class

MediaRecorder.VideoEncoder

定義視頻編碼

class

MediaRecorder.VideoSource

定義視頻source

?

?

?

?

?

3?主要方法:

final static int

getAudioSourceMax()

Gets the maximum value for audio sources.

獲取音頻信號源的最高值。

?

int

getMaxAmplitude()

Returns the maximum absolute amplitude that was sampled since the last call to this method.

最后調用這個方法采樣的時候返回最大振幅的絕對值

void

prepare()

Prepares the recorder to begin capturing and encoding data.

準備recorder 開始捕獲和編碼數據

void

release()

Releases resources associated with this MediaRecorder object.

發布與此MediaRecorder對象關聯的資源

void

reset()

Restarts the MediaRecorder to its idle state.

重新啟動mediarecorder到空閑狀態

void

setAudioChannels(int numChannels)

Sets the number of audio channels for recording.

設置錄制的音頻通道數。

?

void

setAudioEncoder(int audio_encoder)

Sets the audio encoder to be used for recording.

設置audio的編碼格式

void

setAudioEncodingBitRate(int bitRate)

Sets the audio encoding bit rate for recording.

設置錄制的音頻編碼比特率

?

void

setAudioSamplingRate(int samplingRate)

Sets the audio sampling rate for recording.

設置錄制的音頻采樣率。

?

void

setAudioSource(int audio_source)

Sets the audio source to be used for recording.

設置用于錄制的音源。

?

void

setAuxiliaryOutputFile(String?path)

Pass in the file path for the auxiliary time lapse video.

輔助時間的推移視頻文件的路徑傳遞。

void

setAuxiliaryOutputFile(FileDescriptor?fd)

Pass in the file descriptor for the auxiliary time lapse video.

在文件描述符傳遞的輔助時間的推移視頻

?

void

setCamera(Camera?c)

Sets a Camera to use for recording.

設置一個recording的攝像頭

void

setCaptureRate(double fps)

Set video frame capture rate.

設置視頻幀的捕獲率

void

setMaxDuration(int max_duration_ms)

Sets the maximum duration (in ms) of the recording session.

設置記錄會話的最大持續時間(毫秒)

void

setMaxFileSize(long max_filesize_bytes)

Sets the maximum filesize (in bytes) of the recording session.

設置記錄會話的最大大小(以字節為單位)

void

setOnErrorListener(MediaRecorder.OnErrorListener?l)

Register a callback to be invoked when an error occurs while recording.

注冊一個回調被調用發生錯誤時,同時錄制

void

setOnInfoListener(MediaRecorder.OnInfoListener?listener)

Register a callback to be invoked when an informational event occurs while recording.

注冊要同時記錄一個信息事件發生時調用的回調。

?

void

setOrientationHint(int degrees)

Sets the orientation hint for output video playback.

設置輸出的視頻播放的方向提示

void

setOutputFile(FileDescriptor?fd)

Pass in the file descriptor of the file to be written.

傳遞要寫入的文件的文件描述符

void

setOutputFile(String?path)

Sets the path of the output file to be produced.

設置輸出文件的路徑

void

setOutputFormat(int output_format)

Sets the format of the output file produced during recording.

設置在錄制過程中產生的輸出文件的格式

?

void

setPreviewDisplay(Surface?sv)

Sets a Surface to show a preview of recorded media (video).

表面設置顯示記錄媒體(視頻)的預覽

void

setProfile(CamcorderProfile?profile)

Uses the settings from a CamcorderProfile object for recording.

從一個記錄CamcorderProfile對象的使用設置

void

setVideoEncoder(int video_encoder)

Sets the video encoder to be used for recording.

設置視頻編碼器,用于錄制

void

setVideoEncodingBitRate(int bitRate)

Sets the video encoding bit rate for recording.

設置錄制的視頻編碼比特率。

?

void

setVideoFrameRate(int rate)

Sets the frame rate of the video to be captured.

設置要捕獲的視頻幀速率

void

setVideoSize(int width, int height)

Sets the width and height of the video to be captured.

設置要捕獲的視頻的寬度和高度

void

setVideoSource(int video_source)

Sets the video source to be used for recording.

開始捕捉和編碼數據到setOutputFile(指定的文件)

void

start()

Begins capturing and encoding data to the file specified with setOutputFile().

?

void

stop()

Stops recording.

停止recording

?

?

視頻編碼格式:default,H263,H264,MPEG_4_SP

獲得視頻資源:default,CAMERA

音頻編碼格式:default,AAC,AMR_NB,AMR_WB,

獲得音頻資源:defalut,camcorder,mic,voice_call,voice_communication,voice_downlink, voice_recognition,? voice_uplink;

輸出方式:amr_nb,amr_wb,default,mpeg_4,raw_amr,three_gpp.

?

?

4?流程分析

一、 java層

media recorder state machine:

1、java應用層

java應用層主要是一些接口的調用,它并沒有具體功能代碼的實現,java應用層的代碼路徑為:

android/packages/apps/SoundRecorder/src/com/android/soundrecorder/

該目錄下有文件: SoundRecorder.java Recorder.java VUMeter.java

soundrecorder.java是程序的入口文件,我們在可以在里面設置文件輸出編碼格式的格式,現在系統默認支持兩種格式amr和3gpp格式。設置代碼如下:

mRequestedType =AUDIO_3GPP; //02 AUDIO_AMR;

接著運行mRecorder = new Recorder();創建一個Recorder類。Recorder類在Recorder.java中定義。

Recorder的startRecording方法啟動了java層的錄音。startRecording方法中首先創建一個Mediarecorder的類,然后調用Mediarecorder的方法完成設置audio源、設置輸出文件格式、audio編碼格式、設置輸出文件,然后檢查MediaRecorder是否準備好了。如果準備好就啟動。如果沒有準備好就拋出異常然后重新設置MediaRecorder和釋放MediaRecorder。代碼如下所示:

mRecorder = new MediaRecorder();

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

mRecorder.setOutputFormat(outputfileformat);

mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

mRecorder.setOutputFile(mSampleFile.getAbsolutePath());

// Handle IOException

try {

mRecorder.prepare();

} catch(IOException exception) {

setError(INTERNAL_ERROR);

mRecorder.reset();

mRecorder.release();

mRecorder = null;

return;

}

mRecorder.start();

2、JAVA Framework層

Java的framework層代碼位于:

frameworks/base/media/java/android/media/MediaRecorder.java

它沒有具體的實現只是一個接口而已。

3、JAVA本地調用部分(JNI):

frameworks/base/media/jni/android_media_MediaRecorder.cpp

jni層的只是實現了方法的注冊,為java層調用C++程序提供一種注冊。

這三給部分的程序會編譯成一個libmedia_jni.so庫,java層序的調用都是調用該庫中的接口。具體的實現要要在我們的多媒體底層庫。

二、?多媒體底層庫

1、ImediaRecorder.cpp

Imediarecorder.cpp文件中實現了BP功能。BP和BN是通過binder來通信的。Bp主要是用來處理java層傳下來的服務請求。然后通過transact將處理請求傳給bn(通過binder)。其接口如下所示:

class BpMediaRecorder: public BpInterface

{

BpMediaRecorder(const sp& impl) : BpInterface(impl) {}

status_t setCamera(const sp& camera);

status_t setPreviewSurface(const sp& surface);

status_t init();

status_t setVideoSource(int vs);

status_t setAudioSource(int as);

status_t setOutputFormat(int of);

status_t setAudioEncoder(int ae);

status_t setOutputFile(const char* path);

status_t prepare();

status_t getMaxAmplitude(int* max);

…………………………

}

上面的每個函數中都用transact方法來向bn發出請求。然后調用return reply.readInt32();將從bn返回的數據傳送個他們的調用函數。

2、Mediarecorder.cpp

Bn的實現是在Mediarecorder.cpp文件中。BN是用來處理bp的請求,當bn將數將處理完后將數據通過transact傳給回bp(通過binder)。MediaRecorder.cpp文件的實現方法與ImediaRecorder,cpp對應,主要是用來接收ImediaRecorder發送過來的請求。

MediaRecorder::MediaRecorder()

{ LOGV("constructor");

sp sm = defaultServiceManager();

sp binder;

do {

binder =sm->getService(String16("media.player"));

if (binder != NULL) {

break;

}

usleep(500000); // 0.5 s

} while(true);

sp service = interface_cast(binder);

if (service != NULL) {

mMediaRecorder = service->createMediaRecorder(getpid());

}

if (mMediaRecorder != NULL) {

mCurrentState = MEDIA_RECORDER_IDLE;

}

doCleanUp();

}

該文件操作的方法是mMediaRecorder的方法,它主要是同過binder機制將請求傳輸送給mediarecorder的服務進程。

3、多媒體服務部分

mediaRecorder的服務文件是MediaRecorderClient.cpp,它主要調用的是PVMediaRecorder的實現方法,在此請求opencore的服務。

MediaRecorderClient::MediaRecorderClient(pid_t pid)

{

LOGV("Client constructor");

mPid = pid;

mRecorder = new PVMediaRecorder();

}

三、Opencore

我們先從pvmediarecorder.cpp文件分析。

在PVMediaRecorder中首先創建一個AuthorDriverWrapper的對象。PVMediaRecorder將它的方法通過author_command包裝。然后通過AuthorDriverWrapper的enqueueCommand將命令發送請求隊列中。

PVMediaRecorder的setOutputFile方法會打開我們上面指定的文件路徑下的文件,為寫文件作好準備。代碼如下:

int fd = open(path, O_RDWR | O_CREAT );

接著分析authordriver.cpp文件

AuthorDriverWrapper::AuthorDriverWrapper()

{

mAuthorDriver = new AuthorDriver();

}

我們在AuthorDriverWrapper首先創建一個AuthorDriver的對象.。我們來看AuthorDriverWrapper的enqueueCommand方法,可以看到,我們在pvmediarecorder中調用的enqueuecommand實際上調用的是authordriver的enqueuecommand方法。

status_t AuthorDriverWrapper::enqueueCommand(author_command*ac, media_completion_f comp, void *cookie)

{ if (mAuthorDriver) {

return mAuthorDriver->enqueueCommand(ac, comp, cookie);

}

return NO_INIT;

}

四、audioflinger層和audiorecord

1、AudioRecord

音頻系統的對外接口是AudioRecord,它通過iBinder來遠程調用Audioflinger的openRecorder函數。AudioRecord構造函數如下:

1:AudioRecord

AudioRecord::AudioRecord(

int streamType,

uint32_t sampleRate,

int format,

int channelCount,

int frameCount,

uint32_t flags,

callback_t cbf,

void* user,

int notificationFrames)

: mStatus(NO_INIT)

{

log_wj("ENTERIN::--%s---%s---\n",__FILE__,__FUNCTION__);

mStatus = set(streamType, sampleRate, format, channelCount,

frameCount, flags, cbf, user, notificationFrames);

}

調用:

status_t AudioRecord::set(int streamType,

uint32_t sampleRate,

int format,

int channelCount,

int frameCount,

uint32_t flags,

callback_t cbf,

void* user,

int notificationFrames,

bool threadCanCallJava)

{

const sp& audioFlinger = AudioSystem::get_audio_flinger();

//獲取緩存大小,間接調用我們修改過該函數(經過三次調用中轉),返回值為//channelCount*320

AudioSystem::getInputBufferSize(sampleRate, format,channelCount, &inputBuffSizeInBytes);

//遠程調用audioFlinger的openrecord函數,openRecord相當于audioflinger為audioRecord

//開辟相應的服務窗口

sp record = audioFlinger->openRecord(getpid(),streamType,

sampleRate, format,

channelCount,

frameCount,

((uint16_t)flags) << 16,

&status);

//創建一個線程用來處理

mClientRecordThread = new ClientRecordThread(*this,threadCanCallJava);

}

AudioRecord相當于一個代理,它的線程是用來處理其它客戶的請求。

2、AudioFlinger

sp AudioFlinger::openRecord(

pid_t pid,

int streamType,

uint32_t sampleRate,

int format,

int channelCount,

int frameCount,

uint32_t flags,

status_t *status)

{

// AudioRecord線程

if (mAudioRecordThread == 0) {

LOGE("Audio record thread not started");

lStatus = NO_INIT;

goto Exit;

}

// add client to list

{ // scope for mLock

Mutex::Autolock _l(mLock);

wclient = mClients.valueFor(pid);

if (wclient != NULL) {

client = wclient.promote();

} else {

client = new Client(this, pid);

mClients.add(pid, client);

}

// create new record track. The record track uses one trackin mHardwareMixerThread by //convention.

//生成一個recordTrack用來作為數據的中轉(audioflinger與audiorecord之間)。

//他們使用audio_track_cblk_t數據結構來傳輸數據。

recordTrack = new MixerThread::RecordTrack(mHardwareMixerThread,client, streamType, sampleRate, format, channelCount, frameCount, flags);

if (recordTrack->getCblk() == NULL) {

recordTrack.clear();

lStatus = NO_MEMORY;

goto Exit;

}

// return to handle to client------我們的audiorecord。

recordHandle = new RecordHandle(recordTrack);

}

AudioRecord和AudioFlinger操作的都是RecordTrack實例,AudioRecord通過它的執行控制操作(start/stop)和讀取操作(read)。Audiorecord的start/stop操作可以理解為一個開關,控制的是AudiorecordThread的運行與否。

Audioflinger則負責從音頻設備讀取數據放置到audio_track_cblk_t數據結構中。

Audioflinger對數據的讀取在AudioFlinger::AudioRecordThread::threadLoop()函數中。在第一次啟動的時候會打開一個AudioStreamIn的對象,并設置參數。

input =mAudioHardware->openInputStream(mRecordTrack->format(),

mRecordTrack->channelCount(),mRecordTrack->sampleRate(),

&mStartStatus,

(AudioSystem::audio_in_acoustics)(mRecordTrack->mFlags>> 16));

讀取數據的代碼如下:

if (LIKELY(mRecordTrack->getNextBuffer(&buffer) ==NO_ERROR&&

(int)buffer.frameCount == inFrameCount) ) {

ssize_t bytesRead = input->read(buffer.raw,inBufferSize);

mRecordTrack->releaseBuffer(&buffer);

mRecordTrack->overflow();

}

首先從audio_track_cblk_t取得緩沖區,然后調用input的read方法讀取數據,最后釋放緩沖區,檢查是否溢出。

五、?硬件抽象層

硬件抽象層主要實現了AudioStreamInALSA和AudioStreamOutALSA兩個類,這兩個類又會調用該文件下的ALSAStreamOps類的方法。AudioStreamInALSA是錄音部分調用的路徑。在AudioStreamInALSA的構造函數中會對alsa進行一些初始化參數設置。AudioStreamInALSA的read方法是最主要的方法,audioflinger層的read調用就是對AudioStreamInALSA的read的調用。由于錄音部分出現單聲道和雙聲道數據傳輸的問題,修改read方法如下,即可實現了錄音功能正常,避免了在編碼的時候修改數據時其他編碼仍不能工作的弊端。

ssize_t AudioStreamInALSA::read(void *buffer, ssize_tbytes)

{ snd_pcm_sframes_t n;

status_t err;

short int *tmp1,*tmp2;

int i;

AutoMutex lock(mLock);

tmp1=(short int *)malloc(bytes*2);

n = snd_pcm_readi(mHandle, tmp1,snd_pcm_bytes_to_frames(mHandle, bytes*2));

if (n < 0 && mHandle) {

n = snd_pcm_recover(mHandle, n, 0);

}

tmp2=(short int *)buffer;

for(i=0;i

{

tmp2[i]=tmp1[2*i];

}

free(tmp1);

return static_cast(n/2);

}

snd_pcm_readi調用的是alsa庫函數,跟蹤執行最終會調用alsa庫下的snd_pcm_hw_readi函數。snd_pcm_hw_readi會調用err = ioctl(fd,SNDRV_PCM_IOCTL_READI_FRAMES, &xferi);最終與kernel相聯系。

?

?

?

5主要能設置列舉

1 setAudioChannels(int numChannels) 設置錄制的音頻通道數。

2 setAudioEncoder(int audio_encoder) 設置audio的編碼格式

3 setAudioEncodingBitRate(int bitRate)? 設置錄制的音頻編碼比特率

4 setAudioSamplingRate(int samplingRate) 設置錄制的音頻采樣率。

5 setAudioSource(int audio_source) 設置用于錄制的音源。

6 setAuxiliaryOutputFile(String path)? 輔助時間的推移視頻文件的路徑傳遞。

7 setAuxiliaryOutputFile(FileDescriptor fd)在文件描述符傳遞的輔助時間的推移視頻

8 setCamera(Camera c) 設置一個recording的攝像頭

9 setCaptureRate(double fps) 設置視頻幀的捕獲率

10 setMaxDuration(int max_duration_ms) 設置記錄會話的最大持續時間(毫秒)

11 setMaxFileSize(long max_filesize_bytes) 設置記錄會話的最大大小(以字節為單位)

12 setOutputFile(FileDescriptor fd) 傳遞要寫入的文件的文件描述符

13 setOutputFile(String path)? 設置輸出文件的路徑

14 setOutputFormat(int output_format) 設置在錄制過程中產生的輸出文件的格式

15 setPreviewDisplay(Surface sv) 表面設置顯示記錄媒體(視頻)的預覽

16 setVideoEncoder(int video_encoder) 設置視頻編碼器,用于錄制

17 setVideoEncodingBitRate(int bitRate) 設置錄制的視頻編碼比特率。

18 setVideoFrameRate(int rate) 設置要捕獲的視頻幀速率

19 setVideoSize(int width, int height) 設置要捕獲的視頻的寬度和高度

20 setVideoSource(int video_source)? 開始捕捉和編碼數據到setOutputFile(指定的文件)

?

?

?

視頻編碼格式:default,H263,H264,MPEG_4_SP

獲得視頻資源:default,CAMERA

音頻編碼格式:default,AAC,AMR_NB,AMR_WB,

獲得音頻資源:defalut,camcorder,mic,voice_call,voice_communication,voice_downlink,

voice_recognition,? voice_uplink;

輸出方式:amr_nb,amr_wb,default,mpeg_4,raw_amr,three_gpp.

總結

以上是生活随笔為你收集整理的Android之mediarecorder中的方法以及工作流程的过程的全部內容,希望文章能夠幫你解決所遇到的問題。

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

91丨九色丨91啦蝌蚪老版 | 亚洲 欧美 精品 | 成人黄色av网站 | 五月天色婷婷丁香 | 黄色小说视频网站 | 日本免费一二三区 | 国产精品成人自产拍在线观看 | 国产麻豆精品一区二区 | 最新久久免费视频 | 久久国产精品免费视频 | 日韩网站一区 | 国产午夜精品一区 | 99久久久久久 | 一区二区精品在线观看 | 三级动态视频在线观看 | 日韩欧美不卡 | 九九免费在线看完整版 | 欧美亚洲专区 | 日韩精品久久久 | 天天综合网久久 | 日韩a在线观看 | 男女视频久久久 | 国产日产精品一区二区三区四区 | 国产99精品 | 久久午夜剧场 | 欧美日韩精品电影 | 热99在线视频 | 国产精品一区二区在线观看免费 | 免费av在线网 | 黄色片免费电影 | 99热99re6国产在线播放 | 综合色狠狠 | 在线中文字幕av观看 | 久草观看视频 | 99久免费精品视频在线观看 | 亚洲在线成人精品 | www.久艹| 丁香国产视频 | aaaaaa毛片| 久久精国产 | 中文字幕一区二区三区在线观看 | 国产精品久久网 | 亚洲狠狠婷婷综合久久久 | 九九视频网站 | 97久久精品午夜一区二区 | 午夜少妇一区二区三区 | 美女网站在线免费观看 | 天天干天天操天天射 | 中文字幕在线观看视频网站 | 99久热在线精品 | 人人玩人人爽 | 九色porny真实丨国产18 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 成人在线免费看 | 午夜精品导航 | 欧美日韩大片在线观看 | 手机色在线 | 国内精品久久久久国产 | 97自拍超碰| 夜夜摸夜夜爽 | 国产亚洲精品久久久久久久久久 | www.啪啪.com | 国产小视频网站 | 中文资源在线观看 | 色综合五月 | 欧美一级片免费播放 | 久久乐九色婷婷综合色狠狠182 | 国产亚洲精品成人av久久影院 | 欧美在线视频一区二区 | 国产黄色免费看 | 久久精品一 | 超碰个人在线 | 亚洲国产日韩一区 | 色婷婷av一区 | 天天干天天想 | 天天天操操操 | 在线一二区| 欧美日韩精品免费观看 | 国产成人精品一区二区三区在线 | 一级片黄色片网站 | 久久免费在线观看 | 久草免费福利在线观看 | 五月婷婷视频在线观看 | www.久久99 | 麻豆视频在线看 | 色欧美88888久久久久久影院 | 不卡国产视频 | 999视频在线播放 | 1区2区视频 | 久久国产精品第一页 | 亚洲精品美女在线 | 久久影视一区二区 | 亚洲精品国产精品国自产 | 亚洲一级片免费观看 | 国产91精品欧美 | 午夜丰满寂寞少妇精品 | 中文字幕制服丝袜av久久 | 日日夜夜天天久久 | 精品国产综合区久久久久久 | 国产又粗又猛又爽 | 日韩欧美高清在线 | 五月婷婷欧美 | 久久精品99久久久久久 | 国产精品私拍 | 四虎影视成人精品国库在线观看 | 337p日本大胆噜噜噜噜 | 天天插日日插 | 国产精品久久久久久久久久久久 | 久久99国产精品视频 | 婷婷久久综合网 | 亚洲三级黄色 | 天天综合操 | 成人国产精品一区二区 | 国产一区二区三区免费观看视频 | av成年人电影 | 亚洲九九九在线观看 | 一区二区三区电影在线播 | 啪啪免费视频网站 | 国产色拍拍拍拍在线精品 | 日韩免费播放 | 草久在线视频 | 午夜精品影院 | 国产精品一区二区62 | 久操伊人 | 97色婷婷成人综合在线观看 | 国产免费影院 | 国产欧美日韩视频 | 天天婷婷| 久青草视频 | 在线之家免费在线观看电影 | 国产福利a| 亚洲国产成人久久 | 国产一区二区观看 | 亚洲国产美女久久久久 | 中文字幕免费一区二区 | 91豆麻精品91久久久久久 | 成人免费视频播放 | 国产精品久久久久久久久久新婚 | 久久精品国产一区二区 | 日韩亚洲在线观看 | 五月婷婷播播 | 人人爽人人香蕉 | 午夜视频一区二区三区 | 成人h在线 | 久草在线资源观看 | 久久久久久久18 | 一区二区伦理电影 | 人人射av | 成人av观看 | 免费视频你懂得 | 97在线免费 | 操操操干干干 | 国产成人精品亚洲精品 | 超碰在线色 | 国内小视频在线观看 | 91精彩视频| 在线国产小视频 | 99精品在线视频观看 | 国产99久久九九精品免费 | 国产成人精品一区二区三区 | 中文字幕不卡在线88 | 少妇精69xxtheporn | 国产一级特黄电影 | 日韩av免费一区 | 精品99在线观看 | 99热最新| 欧美精品一区二区免费 | 激情黄色av | 成人av电影在线观看 | 婷婷六月色 | 国产区网址 | 天天摸天天舔天天操 | 一级成人免费 | 日精品| 中文字幕av最新 | 韩国一区在线 | 丁香六月国产 | 日韩中文字幕视频在线观看 | 国产精品久久久久久久久免费看 | 中国一级片视频 | 欧美另类sm图片 | 欧美午夜精品久久久久 | 久久人91精品久久久久久不卡 | 91精品日韩| 日韩女同av | 国产精品免费成人 | 久久久黄色免费网站 | 国产亚洲精品久久久久久无几年桃 | 国产高清专区 | 亚洲视频在线观看 | 国产精品久久久久久久久久久久午夜 | 国产原厂视频在线观看 | 欧美日韩有码 | 福利视频导航网址 | 国产精品国产自产拍高清av | x99av成人免费 | 久青草视频在线观看 | 亚洲激情在线观看 | 国产中文字幕在线播放 | 国产精品久久一 | 人人干人人搞 | 欧美福利精品 | 五月天六月婷婷 | 欧美日韩观看 | 欧美成人视| 免费视频色 | 午夜 久久 tv| 久久福利综合 | 亚洲一区精品二人人爽久久 | 一区二区三区久久精品 | 在线成人一区 | 日韩一区二区三区视频在线 | 久久久久综合网 | 久久er99热精品一区二区 | 国产精品一区二区免费在线观看 | 久久免费看a级毛毛片 | 色com| 丁香 久久 综合 | 国产精品美女久久久 | 日韩手机在线 | 成人毛片网 | 中文字幕在线观看完整版 | 在线精品在线 | 91视频在线免费下载 | 久久午夜电影 | 亚洲男男gaygay无套同网址 | 久久精品亚洲精品国产欧美 | 亚洲伊人网在线观看 | 黄色小视频在线观看免费 | 精品国产免费观看 | 成人av资源 | 91精品国产网站 | 成 人 黄 色 视频 免费观看 | 91污污视频在线观看 | 韩日精品中文字幕 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品成久久久久 | 国产精品久久久一区二区 | 亚州免费视频 | 欧美一区免费在线观看 | 人人看人人 | 99视频导航 | 久久久久国产精品一区二区 | 狠狠地日 | 久久av不卡 | 国产一区二区三区在线免费观看 | 99久久99视频只有精品 | 又黄又爽又刺激视频 | 97国产 | 天天射天天做 | av黄色免费网站 | 国产69精品久久久久99尤 | 国产最新在线 | 五月天亚洲综合小说网 | 五月天激情婷婷 | 亚洲一区日韩在线 | 天天色综合天天 | 国产婷婷久久 | 国产精品一区二区在线看 | av在线亚洲天堂 | 久久久久国产一区二区三区四区 | 日韩精品观看 | 国产精品美女久久久久aⅴ 干干夜夜 | 久久99网站| 久久精品综合一区 | 蜜桃传媒一区二区 | 久久国产电影 | 国产九九精品 | 人人射人人插 | 午夜精品婷婷 | 久久 在线 | 狠狠操狠狠干天天操 | 麻豆系列在线观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 99re久久精品国产 | 欧美乱熟臀69xxxxxx | 久草视频在线免费 | 久久五月网 | 中文免费在线观看 | 久久免费高清 | 久久精品久久国产 | 一级欧美日韩 | 日韩中文字幕视频在线 | 国产精品久久久久永久免费 | 久久大香线蕉app | 久草在在线视频 | 久久好看免费视频 | 国产无套精品久久久久久 | 黄色日本免费 | 午夜精品福利在线 | 亚洲精品乱码久久久久久久久久 | 日韩精品视频第一页 | 欧美性性网 | 中文字幕你懂的 | 日韩中文字幕亚洲一区二区va在线 | 国产 在线 日韩 | 久久精品久久精品久久39 | 亚洲在线资源 | 97精品电影院 | 九九在线视频 | 国产男男gay做爰 | 射九九| 国产精品网址在线观看 | 天天插综合 | 亚洲精品美女视频 | 免费av 在线 | www.亚洲激情.com | 成人精品在线 | 欧美成人影音 | 久草在线手机视频 | 欧美日韩一区二区久久 | 亚洲综合欧美精品电影 | 人人盈棋牌 | 91网免费观看 | 国产精品永久在线 | 国产成人精品免费在线观看 | 一区二区三区在线播放 | 日韩高清一二区 | 中文字幕在线影院 | 狠狠的干狠狠的操 | 日本精品久久久久久 | 国产精品一区二区三区99 | 香蕉视频在线免费 | 久久久久国产精品免费免费搜索 | 欧美日韩中文在线观看 | 99中文字幕| 综合天天| 91最新地址永久入口 | 欧洲亚洲国产视频 | 伊人婷婷网| 亚洲精品乱码久久久久久蜜桃不爽 | 久久精品免费电影 | 国产在线观看污片 | 97人人艹 | 久久久精品免费观看 | 在线观看视频h | 成年人免费av网站 | 中文字幕人成乱码在线观看 | 中文字幕在线免费观看视频 | 久久免费资源 | 一区二区三区高清在线观看 | 日韩精品免费在线观看视频 | 91av视频| 国产精品久久久久久久久毛片 | 国产精品理论片 | 99热在线这里只有精品 | 在线免费观看视频你懂的 | 狠狠躁日日躁狂躁夜夜躁 | 精品色综合 | 日韩高清www | 日韩在线播放av | 黄色中文字幕 | www..com黄色片| 国产成人精品三级 | 狠狠狠狠狠狠天天爱 | 91免费网 | 日韩在线高清 | 精品一区 在线 | 免费aa大片 | 久久婷婷国产色一区二区三区 | 成人免费共享视频 | av中文字幕在线播放 | 最近中文字幕在线播放 | 国产原厂视频在线观看 | 欧美视频日韩 | 毛片永久新网址首页 | 激情久久一区二区三区 | 国产自产高清不卡 | 久久久久久欧美二区电影网 | 69国产盗摄一区二区三区五区 | 91久久国产综合精品女同国语 | avv天堂| 国产麻豆果冻传媒在线观看 | 婷婷丁香国产 | 97超碰在线资源 | 日韩免费中文 | 91激情视频在线 | 国产亚洲精品美女久久 | 欧美日韩在线观看一区二区三区 | 国产香蕉97碰碰碰视频在线观看 | 亚洲黄色三级 | 在线免费观看黄色小说 | 国产在线第三页 | 国内外激情视频 | 欧美日韩精品电影 | 国产精品久久久视频 | 国产三级av在线 | 韩日成人av | 99久久婷婷国产综合亚洲 | 黄色午夜 | av免费网站在线观看 | 精品久久一 | 国产区免费在线 | 国产天天综合 | 成年人视频在线免费观看 | av字幕在线 | 久久久国产99久久国产一 | 日日射av | 国产精久久久久久妇女av | 日韩网站在线看片你懂的 | 超碰官网 | 亚洲一区二区天堂 | 欧美一区免费在线观看 | 欧美在线一级片 | 婷婷激情综合网 | 国产精品久久麻豆 | www.黄色片.com | 狠狠88综合久久久久综合网 | 手机在线日韩视频 | 国产r级在线观看 | 最新国产精品视频 | 精品免费 | 日韩在线视频网 | 色婷婷a | 国内精品二区 | 成人久久精品 | 国产精品久久久久久一区二区三区 | www日日夜夜 | av免费播放| 日韩在线视频一区 | 综合久久一本 | 91精彩视频在线观看 | 久久久久欠精品国产毛片国产毛生 | 欧美一区二区三区在线播放 | 91在线视频免费 | 五月天婷婷免费视频 | 美女免费黄视频网站 | 久久久久久久久久久久久久电影 | 在线a视频免费观看 | 国产成人精品电影久久久 | 在线激情电影 | 欧美一级在线看 | 国产精品久久久久久久av电影 | 黄色中文字幕在线 | 日韩免费看视频 | 美女视频免费一区二区 | 91激情视频在线播放 | 夜夜狠狠 | 91豆麻精品91久久久久久 | 中文字幕有码在线 | 综合色中文 | 日韩r级电影在线观看 | 成人免费在线观看电影 | 日韩av高清| 五月婷婷另类国产 | 亚洲涩涩色 | 亚洲天天摸日日摸天天欢 | 婷五月激情 | 丁香激情视频 | 久久久电影 | 黄色av网站在线观看免费 | 欧美日韩在线视频一区 | av黄色大片 | 欧美日韩三区二区 | 国产不卡片 | 狠狠躁夜夜躁人人爽视频 | 日本精品视频在线观看 | 精品国产免费人成在线观看 | 国产精品18久久久久vr手机版特色 | 在线观看韩日电影免费 | 国产破处在线视频 | 久久视频这里有久久精品视频11 | 在线观看激情av | 亚洲午夜精品在线观看 | 精品国产伦一区二区三区免费 | 国产91av视频在线观看 | 视频国产一区二区三区 | 国产精品九九九 | av中文字幕免费在线观看 | 日韩欧美高清在线 | 日韩精品在线免费观看 | 国产在线不卡视频 | 欧美了一区在线观看 | 成人免费网站在线观看 | av电影av在线| 欧美伦理一区 | 97精品国产手机 | 91精品91| 久久黄网站 | 91成人在线网站 | 在线观看亚洲成人 | 婷婷综合av | 亚洲精品字幕在线 | 91人人澡人人爽人人精品 | 亚洲精品黄色片 | 国内少妇自拍视频一区 | 日韩视频一区二区三区在线播放免费观看 | 五月婷婷天堂 | 91一区二区三区在线观看 | 97超碰人人澡 | 国产四虎在线 | 国产在线观看91 | 色视频网址 | 超碰激情在线 | 日韩1页 | 97精品超碰一区二区三区 | 国产色黄网站 | 人人舔人人爽 | 亚洲更新最快 | 成人黄色小说在线观看 | 免费在线观看成人 | www久久99 | 青青河边草免费视频 | 天天操夜夜操天天射 | 国产不卡精品视频 | 中文字幕九九 | 久久久国产一区 | 97超碰在线久草超碰在线观看 | 黄色a三级| 99精品国产兔费观看久久99 | www.色午夜| 毛片888| 久久国产精品久久国产精品 | 在线免费观看黄 | 久久与婷婷| 日韩精选在线 | 超碰最新网址 | 欧美三级在线播放 | 99视频精品全部免费 在线 | 日韩欧美一区二区三区黑寡妇 | 三级av在线 | 奇米影视在线99精品 | 日韩高清不卡一区二区三区 | 久久久久国产成人免费精品免费 | 久久精品视 | 国产1区2 | 国产成年免费视频 | 精品99久久久久久 | 瑞典xxxx性hd极品 | 国产精品乱码一区二区视频 | 免费a网站 | 国产伦精品一区二区三区无广告 | 日韩免费播放 | 免费久久片 | 91精品一区二区三区久久久久久 | 色婷婷狠狠五月综合天色拍 | 国产 日韩 在线 亚洲 字幕 中文 | 久久免费精品视频 | 国产午夜精品理论片在线 | 久久久精品久久日韩一区综合 | 超碰人人草| 免费下载高清毛片 | 色www精品视频在线观看 | 99精品欧美一区二区 | 国产亚洲综合精品 | 欧美国产亚洲精品久久久8v | www夜夜| 午夜久久福利视频 | 成年人免费在线观看 | 狠狠色丁香婷婷综合久久片 | 久久深爱网 | 国产小视频免费观看 | 欧美国产亚洲精品久久久8v | 免费三级影片 | 美女黄濒| 狠狠的干狠狠的操 | 激情五月婷婷丁香 | 日韩av线观看| 91大神视频网站 | 日本精品视频免费 | 欧美精品被 | 一区二区在线不卡 | 天无日天天操天天干 | 久久综合狠狠综合久久综合88 | 国产h在线观看 | 日本三级国产 | 欧美日韩在线精品一区二区 | 操操操干干干 | 久久久久亚洲a | 免费电影一区二区三区 | 毛片激情永久免费 | 免费在线观看av网站 | 日韩网站一区 | 国产精品午夜在线观看 | 国产中文字幕视频在线观看 | 黄色免费看片网站 | 亚洲人在线7777777精品 | 国产婷婷精品 | 在线va网站 | 免费视频xnxx com | 中国一级片在线播放 | 中文字幕在线观看第二页 | 日韩视频专区 | 香蕉视频在线免费 | 黄a在线| 丝袜+亚洲+另类+欧美+变态 | 黄色片免费电影 | 激情www| www日韩| www.夜夜操| 国产一二三四在线视频 | 久久精品一二区 | 97涩涩视频 | 天堂在线视频免费观看 | av免费电影在线观看 | www好男人| 午夜精品中文字幕 | av不卡网站 | 中国一级片视频 | av三级av| 国产色女| 开心色婷婷 | 中文字幕人成乱码在线观看 | 欧美色噜噜噜 | 四虎影视av | 久久av免费 | 激情五月色播五月 | 天天操天操 | 高清色免费 | 最近在线中文字幕 | av一本久道久久波多野结衣 | 日韩视频免费 | 99精品国产兔费观看久久99 | 天天se天天cao天天干 | 成 人 黄 色 免费播放 | 成人免费网站在线观看 | 欧美成人h版在线观看 | 日韩在线在线 | 五月天中文字幕 | 久久色在线观看 | 91国内在线 | 天堂在线视频免费观看 | www.com在线观看 | 狠狠操狠狠干天天操 | 国产日韩精品一区二区在线观看播放 | 欧美一级大片在线观看 | 国产精品一区二区在线播放 | 色六月婷婷 | 免费成人在线网站 | 欧美激情综合五月色丁香小说 | 麻豆精品视频 | 成人久久精品 | 在线免费观看国产精品 | 麻豆久久一区 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 最近高清中文在线字幕在线观看 | 久久久久久毛片精品免费不卡 | japanesexxx乱女另类 | 精品久久国产一区 | 亚洲免费av一区二区 | 操操综合 | 中文字幕在线日 | 亚洲免费一级电影 | 在线观看国产一区二区 | 久热超碰 | 99一级片| 欧美日韩天堂 | 国产原创av在线 | 一区二区三区电影大全 | 顶级bbw搡bbbb搡bbbb | 97成人精品视频在线播放 | 国产高清 不卡 | av免费试看| 国产系列精品av | 日韩视频免费播放 | 久久你懂的 | 久久国产精品一国产精品 | 五月天婷亚洲天综合网鲁鲁鲁 | www日韩高清 | 三级视频国产 | 中文字幕 国产视频 | 成年人在线观看 | 不卡的一区二区三区 | 能在线观看的日韩av | 深爱激情五月网 | 精品日韩中文字幕 | 日韩av在线一区二区 | 黄色avwww | 最近中文字幕在线播放 | 天天操天天爱天天爽 | 中文日韩在线视频 | 国产精品久久久久久久久久久免费 | 亚洲精品456在线播放 | 久久免费毛片视频 | 91九色蝌蚪在线 | 国产精品热视频 | 国产91精品久久久久久 | 国产成人精品一区二区三区网站观看 | 精品 一区 在线 | 国内精品久久久久影院一蜜桃 | 中文区中文字幕免费看 | 亚洲干 | 色综合色综合久久综合频道88 | 久久久综合九色合综国产精品 | 欧美激情视频在线免费观看 | 亚洲精品美女久久17c | 91香蕉视频污在线 | 99久久毛片 | 黄色激情网址 | 亚洲一区网 | 一区二区三区视频 | 久久高清免费视频 | 国产视频18 | 日韩高清免费电影 | 日日摸日日添夜夜爽97 | 久草免费色站 | 五月天天av | 欧美午夜寂寞影院 | 中文字幕欲求不满 | 欧美成人黄 | 天天av综合网 | 成人av中文字幕 | 成人毛片网 | 五月天激情综合网 | 亚洲精品视频在线观看网站 | 日韩网站一区二区 | 亚洲精品乱码久久久久v最新版 | 亚洲欧洲av在线 | 国产在线观看网站 | 天天天综合 | 免费在线成人av | 91福利视频久久久久 | 毛片精品免费在线观看 | 91在线观看视频网站 | 精品国产精品久久 | 国产精品成人在线 | 91亚色视频在线观看 | 欧美一区二区在线免费观看 | 欧美日韩免费一区二区 | 91视频啊啊啊 | 99久久婷婷国产综合精品 | 亚洲精品中文字幕在线 | 丁香激情综合久久伊人久久 | 国产五月婷 | 久久精品一区二区三区视频 | 婷婷色资源 | 在线精品视频在线观看高清 | 99国产精品 | 国产一二区在线观看 | 黄a在线| 国产黄色大片免费看 | 久久精品伊人 | 亚洲色影爱久久精品 | 日韩网站在线观看 | 一级一片免费视频 | 九九一级片 | 18做爰免费视频网站 | 国产成人精品一区二区三区在线 | 在线观看黄a| 欧美日韩免费一区 | 亚洲国产久| 国产一级性生活视频 | 国产视频在线观看一区二区 | 成人在线视频免费观看 | 中文字幕刺激在线 | 综合天堂av久久久久久久 | 亚洲精品综合一二三区在线观看 | 国内精品在线观看视频 | 精品在线不卡 | 久久精品国产精品亚洲 | av青草| 天天插综合网 | 国产小视频在线观看免费 | 成年人在线播放视频 | 欧洲精品在线视频 | 色婷婷在线视频 | 国产成人精品午夜在线播放 | 久久久久久久久久亚洲精品 | 91成人免费视频 | 一区二区三区不卡在线 | av大片免费在线观看 | 91久久国产露脸精品国产闺蜜 | 国产一级电影在线 | 激情综合色播五月 | 欧美a级片网站 | 亚洲精品国产精品国自产在线 | 四虎在线免费观看视频 | 国产日韩欧美综合在线 | 婷婷婷国产在线视频 | 婷婷视频在线观看 | 欧美精品久久久久久久久久丰满 | 中文字幕九九 | 一二三精品视频 | 久草视频免费播放 | 成人羞羞视频在线观看免费 | 麻豆免费精品视频 | 国产亚洲综合精品 | 99视频一区二区 | 天天射天 | 成人在线视频免费 | 人人射 | 国产一区二区成人 | 99色在线播放 | 天天射综合| 亚洲精品国产自产拍在线观看 | 久久精品亚洲综合专区 | 亚洲国产天堂av | 五月婷婷综合在线观看 | 麻豆国产精品va在线观看不卡 | 成 人 黄 色视频免费播放 | 色国产视频 | 91黄视频在线观看 | 天天干天天干天天干天天干天天干天天干 | 国产亚洲精品久久久久久久久久 | 91精品一区二区三区久久久久久 | 亚洲国产成人高清精品 | 最新日本中文字幕 | 亚洲福利精品 | 国产精品美女免费视频 | 激情五月婷婷丁香 | 亚洲精品国产精品国自产在线 | 制服丝袜一区二区 | 久精品一区 | 婷婷综合伊人 | 97视频免费在线 | 中文在线中文a | 婷婷亚洲综合五月天小说 | 免费三级黄色 | 啪啪肉肉污av国网站 | 日韩一区二区三区免费视频 | 国产精品不卡视频 | 美国三级黄色大片 | 精品国自产在线观看 | 国产亚洲成人网 | 中文字幕在线视频一区二区三区 | 国产精品午夜在线观看 | 久久综合色播五月 | 日本中文字幕在线 | 人人干干人人 | 在线免费观看黄 | 国产黄网在线 | 偷拍视频一区 | 婷婷色网址 | 999久久久久久 | 日韩av成人在线观看 | 麻豆 free xxxx movies hd | 欧美日韩亚洲第一页 | www久久com| 中文字幕在线观看完整版 | 欧美黄污视频 | 久久久免费精品国产一区二区 | 欧美不卡视频在线 | 国产中文字幕久久 | 国产生活一级片 | 国产成人av电影在线 | 国产伦精品一区二区三区四区视频 | 在线观看激情av | 日日夜夜操操操操 | 国内精品久久久久影院男同志 | 一区二区不卡视频在线观看 | 日韩免费播放 | 日韩欧美中文 | 亚洲精品啊啊啊 | 成人国产一区二区 | 精品国产一区二区三区日日嗨 | 国产九色在线播放九色 | 97免费视频在线 | 亚洲精品久| 成片人卡1卡2卡3手机免费看 | 久久视频国产 | 日韩1级片 | av千婊在线免费观看 | 青青河边草观看完整版高清 | 亚洲毛片一区二区三区 | 永久免费的啪啪网站免费观看浪潮 | 免费av在线网 | 91视频91色 | 最新日韩在线 | 欧美国产日韩一区二区三区 | 日韩视频免费观看高清 | 亚洲毛片一区二区三区 | 天天摸天天操天天舔 | 精品免费一区二区三区 | 在线观看国产高清视频 | 亚洲丝袜一区 | 中文字幕第一页在线vr | 国产精品一区二区三区久久久 | 涩av在线 | 久久久久久久久久久国产精品 | 亚洲视频 在线观看 | 成年人视频在线免费 | 日日躁你夜夜躁你av蜜 | 五月开心六月婷婷 | 天天操天天射天天添 | 伊人六月| 在线观看视频h | 激情深爱.com | 黄色的网站免费看 | 国产一区免费 | 日韩成人精品一区二区三区 | 中文字幕免费观看全部电影 | 六月丁香综合网 | 国产精品福利在线观看 | 国产一区二区免费在线观看 | 人人射网站 | 国产亚洲成人精品 | 片网站 | 91经典在线 | 国产无遮挡猛进猛出免费软件 | 婷婷色亚洲| 国产精品久久久久一区二区国产 | 欧美日韩二区在线 | 国内免费的中文字幕 | 中文字幕免费高清 | 日韩成人在线免费观看 | 中文av字幕在线观看 | 国产一二三区在线观看 | 521色香蕉网站在线观看 | 91视频啪 | 播五月综合 | 91亚洲夫妻| www日韩高清| 欧美老少交 | 91大神电影 | 成人小电影在线看 | 亚洲精品国偷拍自产在线观看 | 国产一区二区在线视频观看 | 日韩欧美高清视频在线观看 | 99久高清在线观看视频99精品热在线观看视频 | 精品亚洲欧美一区 | 国产精品正在播放 | 欧美精品生活片 | 999成人免费视频 | zzijzzij亚洲成熟少妇 | av大片网站 | 999成人免费视频 | 成人一级影视 | 日本黄色片一区二区 | 婷婷六月天综合 | 成人一区二区在线 | 国产一区二三区好的 | 狠狠躁夜夜a产精品视频 | 国产成在线观看免费视频 | 色综合久久综合中文综合网 | 国产精品久久在线 | 国产不卡免费av | 精品一区二区影视 | 国产精品亚洲人在线观看 | 久久天天综合网 | 国产成人区 | 亚洲欧美少妇 | 天天操操操操操操 | 美女网站视频免费黄 | 国产精品精品视频 | 亚洲第一中文字幕 | 色吊丝在线永久观看最新版本 | 天天天综合网 | 81国产精品久久久久久久久久 | 亚洲精品久久久久中文字幕m男 | 91插插视频 | 国产vs久久| 成 人 黄 色 片 在线播放 | 五月天av在线 | 午夜精品电影一区二区在线 | 一区二区三区在线观看免费 | 懂色av一区二区在线播放 | 久产久精国产品 | 国产一区二区在线影院 | 五月婷婷在线视频观看 | 天天操夜夜干 | 成人一区电影 | 中文字幕亚洲欧美日韩2019 | 狠狠色丁香久久综合网 | 久久久亚洲影院 | 91精品国产自产91精品 | 久久国产精品免费一区 | 蜜臀av性久久久久蜜臀av | 奇米影音四色 | 久久九九影院 | 国产精品手机视频 | 亚洲aⅴ在线 | 成人毛片一区二区三区 | 麻豆传媒一区二区 | 开心色激情网 | 久久久久在线观看 | 国产美女视频免费观看的网站 | 永久免费的啪啪网站免费观看浪潮 | av理论电影 | 波多野结衣在线观看视频 | 手机在线免费av | 日韩一二三在线 | 日韩欧美视频在线免费观看 | 久久激情五月激情 | 超级碰碰碰碰 | 成人在线小视频 | 日本黄色大片儿 | 久久这里只有精品视频99 | 狠狠色丁香久久婷婷综合五月 | 日韩免费在线视频 | 美女黄频免费 | 免费久草视频 | 国产精品一区免费在线观看 | 国产精品视频免费在线观看 | 亚洲mv大片欧洲mv大片免费 | 午夜精品久久久久99热app | 亚洲热久久 | 欧美人人| 精品1区2区3区 | 亚洲精品福利视频 | 日韩视频欧美视频 | 在线视频婷婷 | 天天在线视频色 | 久久精品一二三区 | 国产成人精品一区二区在线观看 | 国产999精品久久久影片官网 | 成人禁用看黄a在线 | 成人一级 | 久久久久综合视频 |