《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Android系統的音樂播放器設計與實現
基于Android系統的音樂播放器設計與實現
來源:微型機與應用2014年第1期
葛 艷,高占江
(青島科技大學 信息科學技術學院,山東 青島 266061)
摘要: 基于Android平臺開發音樂播放器。該播放器主要實現了SD卡掃描、后臺播放、歌手與專輯篩選,歌曲列表管理、歌詞同步滾動顯示、播放模式選擇、皮膚更換、網絡下載、桌面Widget等功能。對Android應用程序的開發環境及工具作了簡單介紹,詳細介紹了音樂播放器軟件界面布局方式、自動音樂掃描機制、歌詞同步實現算法以及歌詞的搜索與下載等功能模塊的設計與實現。對歌詞同步滾動顯示進行了透徹分析。該音樂播放器通過了Android智能手機運行測試,具有較好的集成度和良好的穩定性。
Abstract:
Key words :

摘  要: 基于Android平臺開發音樂播放器。該播放器主要實現了SD卡掃描、后臺播放、歌手與專輯篩選,歌曲列表管理、歌詞同步滾動顯示、播放模式選擇、皮膚更換、網絡下載、桌面Widget等功能。對Android應用程序的開發環境及工具作了簡單介紹,詳細介紹了音樂播放器軟件界面布局方式、自動音樂掃描機制、歌詞同步實現算法以及歌詞的搜索與下載等功能模塊的設計與實現。對歌詞同步滾動顯示進行了透徹分析。該音樂播放器通過了Android智能手機運行測試,具有較好的集成度和良好的穩定性。
關鍵詞: Android;Java;音樂播放;歌詞同步

 隨著科技發展的日新月異,人們對移動設備的需求越來越高,手機已不只是通信工具,而是一個多媒體平臺。Android是Google公司開發的基于Linux平臺的開源的移動終端智能操作系統[1]。Android系統由操作系統、用戶界面和應用程序組成,允許開發人員自由獲取和修改源代碼。Android的發布大大豐富了各種手持式設備軟件的功能[2]。
 本文基于Android平臺開發音樂播放器,選擇開發個性的播放軟件,摒棄單方面追求花哨而帶來的系統資源浪費,將各種性能優化,繼承播放器的常用功能,滿足大多數用戶的娛樂需求。該播放器實現SD卡掃描、后臺播放、歌手與專輯篩選,歌曲列表管理、歌詞同步滾動顯示、播放模式選擇、皮膚更換、網絡下載等功能。此外,還實現桌面的Widget功能,使用戶在不打開該軟件的同時,就可以一鍵聽歌,極大地優化了用戶體驗。
1 Android簡介
 Android系統分為Applications、Application Framework、Libraries、Android Runtime、Linux Kernel 5大層[3]。本播放軟件屬于應用軟件,只對Applications應用層程序的探討,對具體壓縮算法不作深究。
1.1 Android基本組件
 Android應用程序的組件主要有4個,針對智能手機的諸多突發情形,都做出了相應的處理操作[4]。
    (1)Activity:是應用程序最基本的組件。應用程序的每個頁面都由各種Activity構成。它是一種可視化的、直接與用戶接觸的界面元素。
?。?)Service:是一種服務組件,運行于程序的后臺。該組件對用戶是不可見的,在后臺提供程序的托管運行。
?。?)ContentProvider:是一種內容提供者組件。該組件能夠實現應用程序之間的數據共享,并能夠監聽其共享數據的變化。
 (4)BroadcastReceiver:實現應用程序內部數據的傳遞,也能實現事件的先后順序觸發。
1.2 開發工具
 軟件開發使用Eclipse軟件,使用Android SDK、ADT的支持,JDK開發環境,使用Java語言作為開發語言,基于C/S開發模式。使用Emulator調試工具,調試工具提供了斷點調試,文件管理,電話短信模擬,在軟件開發過程中提供了極大的方便。
2 軟件核心功能
 該部分詳細介紹了播放界面的布局方式、音樂列表自動掃描原理、播放時歌詞同步滾動實現機制、歌詞搜索與下載機制。
2.1 主頁面布局
 軟件的主播放界面采用線性布局與層疊布局的結合,布局中使用了Android的系統控件和自定義的控件,豐富了頁面元素,并對每個控件進行了布局設置,下面對應播放主界面的布局:
 //線性布局方式
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:lrcview="http://schemas.android.com/apk/res/com.gao.mymediaplayer01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <FrameLayout //層疊布局方式
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <ImageView //圖片控件
            android:id="@+id/background"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="fill"/>
  //下面是自定義歌詞控件的布局控制
  <com.gao.mymediaplayer01.LrcView
 //自定義歌詞控件類
 android:id="@+id/lrcTextView"//控件的唯一標識(Id)
 android:layout_width="fill_parent"
 //設置控件的寬度填充父控件
 android:layout_height="160dip"
 //設置控件的高度為特定值
 android:gravity="center"
 //設置控件內容的對齊方式為居中
 android:layout_gravity="center_horizontal"
 //控件的對齊方式為水平居中
 android:layout_marginTop="70dip"
 //控件垂直方向上距離頂部的距離
 />........................其他控件........................
 上面是頁面布局的部分代碼,最后一個控件com.gao.mymediaplayer01.LrcView使用的是自定義的控件,目的是顯示歌詞信息并能夠根據歌曲當前播放時間匹配歌詞的當前行索引,實現歌詞的實時動態刷新顯示。實現的效果如圖1所示。
2.2 音樂掃描
 Android系統提供了一種類似關系表的結構來把應用程序的數據暴露給外界,并把每個這種表使用唯一的標識符URI來標識[2]。Android系統對外部存儲設備的媒體文件進行了統一管理,把每個音樂文件的ID、時長、藝術家等相關信息全部存放在這個表中,使用Contentprovider來訪問這個唯一的標識符URI便可以查詢到在用戶的SD卡中的所有的音樂文件,實現代碼如下:
musicCursor=this.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Audio.Media.TITLE,//歌曲標題
MediaStore.Audio.Media.DURATION,//歌曲時長
MediaStore.Audio.Media.ARTIST,//歌曲的作者
MediaStore.Audio.Media._ID,
//歌曲在SD卡上的唯一標識
MediaStore.Audio.Media.DISPLAY_NAME,
//歌曲顯示的名字
MediaStore.Audio.Media.DATA//歌曲文件的路徑
},null,null,null);
 根據查詢條件可以得到所有歌曲的游標指針,這里的查詢條件可以設置指定的藝術家和指定的專輯,從而可以查詢指定的藝術家和專輯的特定歌曲列表。將得到的游標數據傳遞到ListAdapter適配器中,其中可以設置列表項顯示的內容,之后為這個ListView控件設置單擊事件。
2.3 歌詞同步滾動實現機制
 音樂播放時實現歌詞同步滾動顯示是本音樂播放器的一個特色。下面詳細介紹實現歌詞同步滾動的具體流程:
?。?)歌詞LRC文件一般存放在與該歌曲相同的位置,通過歌曲在SD卡上的DATA屬性獲得LRC文件的位置,使用輸入緩沖流BufferedReader進行讀取,關鍵是每一次讀取歌詞文件的一行,因為歌詞文件的每一行是一個或者多個時刻和歌詞內容的連接,這里把每行歌詞抽象為一個對象,整個歌詞文件看成是所有對象的List集合,每個對象是由時間屬性和歌詞內容屬性共同組成,在讀取每一行歌詞并將其轉換成歌詞類的一個實例時,對不同的表示形式作了不同的處理:
 [00:25.93]和[00:25]兩種時間形式的處理。對其統一格式后判斷時間段的長度,采用不同的函數處理。在實際使用時將其轉換為毫秒保存到對象的時間的私有變量中,內容保存到LRC內容的成員變量中。
對于在一行歌詞中多個時間段表示同一種歌詞內容的情形,首先對整行歌詞中的字符“]”統一替換為某個特殊的字符,將整行內容根據這個特殊字符進行分割得到string類型的數組:String[]splitLrc_data=str.split("@");可以得到數組長度減一個數量的歌詞對象,每個歌詞對象時間域為分割得到的數組的內容,內容域都是數組最后一個元素的值,最后將所有這些歌詞對象存放到List<LrcContent>當中。
?。?)對List歌詞對象按照其時間變量進行排序,排序采用冒泡排序算法,其核心代碼如下:
for(int i=1;i<=count-1;i++)
for(int j=0;j<count-i;j++)
{//排序依據是歌詞對象的時間變量
if(LrcList.get(j).getLrc_time()>LrcList.get(j+1).getLrc_time())
{
LrcContent tempLrcContent=LrcList.set(j,LrcList.get(j+1));
LrcList.set(j+1,tempLrcContent);
}}
?。?)利用冒泡排序算法最終得到按時間先后排好序的歌詞對象的List,根據歌曲當前播放時間選擇當前需要顯示的歌詞行的索引,具體操作如下。
當前歌曲時間小于第一個歌詞對象的時間時,設定要顯示歌詞的行的索引為1;
當前歌曲時間大于第一個歌詞對象的時間時,要循環判斷出當前歌詞時間大于第N個歌詞對象的時間并且要小于第N+1個歌詞對象的時間,設定要顯示的歌詞的行的索引為N;
 當前歌曲時間大于最后一個歌詞行的時間時,設定要顯示的歌詞行的索引為歌詞文件的數量。
?。?)最后,得到當前顯示歌詞的索引后,使用自定義文本控件高亮顯示當前歌詞行,其余歌詞行非高亮顯示。在后臺Service中設定刷新頻率為50 ms,每50 ms獲得當前歌曲時間進度,更新當前行的索引,獲得一個時刻的當前行的索引后,從Service中利用廣播機制將其發送到前臺Activity中,在Activity接收到當前索引后,將自定義的歌詞控件重新繪出。
 設置lrcView.setIndex(lrcIndex)后,使用lrcView.invalidate()強制使歌詞控件重新繪畫,此時繪出的高亮行為當前索引行,且顯示在屏幕的中央,其余行顯示為非高亮行,繪畫歌詞的算法核心代碼如下:
canvas.drawText(lrcList.get(Index).getLrc_body(),width/2,high/2,
CurrentPaint);
float tempY=high/2;//屏幕垂直方向中央的高度
//畫出本句之前的句子
for(int i=Index-1;i>=0;i--){
tempY=tempY-TextHigh;
canvas.drawText(lrcList.get(i).getLrc_body(),width/2,tempY,NotCurrentPaint);}
tempY=high/2;
//畫出本句之后的句子
for(int i=Index+1;i<=lrcList.size()-1;i++){
tempY=tempY+TextHigh;
canvas.drawText(lrcList.get(i).getLrc_body(),width/2,tempY,NotCurrentPaint);}
 按照上述步驟,在后臺Service中設定刷新頻率(一般為50~200 ms)可以實現動態的顯示歌詞。歌詞滾動效果如圖1所示。

2.4 歌詞的搜索與下載

 


 要下載一首歌的歌詞信息,應該由這首歌曲的歌手和歌曲名共同決定,所以利用當前播放歌曲的歌手和歌曲名稱作為參數進行歌詞的搜索,這里使用百度音樂盒提供的歌詞服務器來進行下載。下載流程如下:
?。?)首先將歌曲的歌手和歌曲名稱進行UTF-8編碼的轉換如下:
 titleName=URLEncoder.encode(titleName,"UTF-8");
singerName=URLEncoder.encode(singerName,"UTF-8");
 (2)其次,將參數傳遞到搜索鏈接中:
 strUrl="http://box.zhangmen.baidu.com/x?op=12&count=1&title="+titleName+"$$"+singerName+"$$$$";
此鏈接指向的是一個xml類型的文件,該文件包含對該歌曲及歌詞等信息的描述,使用I/O流讀取該文件,如果該文件內容不為空,可以從中獲取到該歌詞在服務器中的Id(即LyricId),根據這個Id,如果這個Id不為空,進而可以得到該歌詞文件的URL鏈接地址:
 lyricURLStr="http://box.zhangmen.baidu.com/bdlrc/"+lyricId/100+"/"+lyricId+".lrc";
根據該URL使用I/O流將歌詞文件下載到本地就可以完成歌詞的下載。
 (3)最后,歌詞下載完成后,獲取歌詞的保存路徑,調用解析歌詞文件的方法進行解析實現歌詞的滾動顯示。
 本文介紹了基于Android平臺的音樂播放器的設計方案和關鍵技術。詳細介紹了音樂播放器軟件界面布局方式、自動音樂掃描機制、歌詞同步實現算法以及歌詞的搜索與下載等功能模塊的設計與實現。對歌詞同步滾動顯示進行了透徹分析。該音樂播放器集掃描SD卡,音樂列表顯示、播放、后臺播放、上一首、下一首、音量調節歌手選擇、專輯選擇、最近播放、最經常播放、歌詞同步滾動顯示、快進快退、播放模式選擇、更換皮膚、音樂文件操作、網絡下載、桌面Widget等功能于一體,功能較完善。通過在Android智能手機對音樂播放器進行了功能測試。該音樂播放器性能良好,運行流暢。
參考文獻
[1] 周時偉,謝維波.基于Android的智能家居終端設計與實現[J].微型機與應用,2012,31(14):10-13.
[2] 曾建平,邵艷潔.Android系統架構及應用程序開發研究[J].微計算機信息,2011,27(9):1-3.
[3] 樊新,高曙.基于智能移動終端的安全檢查系統設計與實現[J].微型機與應用,2012,31(20):87-92.
[4] 劉安戰,賈曉輝.基于Android的私密短信系統設計與實現[J].微型機與應用,2012,31(17):51-56.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          在线一区二区日韩| 99国产精品国产精品毛片| 欧美中文字幕在线| 久久天天躁夜夜躁狠狠躁2022| 欧美视频在线观看免费| 欧美三级特黄| 国产欧美日韩一区| 久久国产乱子精品免费女| 欧美激情亚洲精品| 亚洲人成在线观看一区二区| 久久久精品五月天| 国产一区二区三区高清在线观看| 极品尤物一区二区三区| 欧美区二区三区| 亚洲高清视频一区二区| 韩国v欧美v日本v亚洲v| 亚洲成人在线免费| 免费成人高清在线视频| 亚洲欧美在线播放| 国产伦精品一区二区三区四区免费| 欧美日韩一区高清| 亚洲午夜精品国产| 伊人蜜桃色噜噜激情综合| 麻豆国产精品777777在线| 亚洲与欧洲av电影| 国产精品红桃| 亚洲一区视频在线观看视频| 久久婷婷人人澡人人喊人人爽| 亚洲视频在线播放| 免费成人高清在线视频| 久久狠狠久久综合桃花| 欧美成人精品一区二区| 久久精品一区二区三区四区| 制服丝袜激情欧洲亚洲| 欧美成人网在线| 欧美xxx成人| 欧美图区在线视频| 欧美日产在线观看| 欧美日韩一区二区三区在线观看免| 久久久久久网站| 中日韩美女免费视频网站在线观看| 欧美精品一区在线观看| 欧美日韩高清区| 欧美婷婷久久| 午夜精品一区二区在线观看| 美女啪啪无遮挡免费久久网站| 免费成人黄色| 玖玖视频精品| 欧美电影在线免费观看网站| 国产精品影视天天线| 欧美日韩精品一二三区| 亚洲夫妻自拍| 欧美经典一区二区| 久久综合九色99| 欧美激情一区在线观看| 日韩网站在线| 欧美三级日韩三级国产三级| 樱桃视频在线观看一区| 欧美精品成人91久久久久久久| 亚洲三级免费| 国产亚洲精品高潮| 欧美国产精品| 欧美日韩四区| 久久蜜桃资源一区二区老牛| 欧美日韩在线播放一区二区| 一区二区欧美视频| 久久久蜜臀国产一区二区| 欧美午夜免费影院| 欧美视频成人| 影音先锋亚洲一区| 欧美日韩高清在线| 在线观看的日韩av| 在线观看日产精品| 欧美国产日本韩| 久久精品亚洲精品国产欧美kt∨| 国产精品一区2区| 免费成人黄色片| 在线观看一区| 国产欧美日韩91| 欧美亚洲综合久久| 亚洲国产网站| 韩国三级电影一区二区| 亚洲欧美日韩在线观看a三区| 国产精品永久免费视频| 最新国产精品拍自在线播放| 亚洲字幕在线观看| 亚洲人成网站999久久久综合| 1024欧美极品| 欧美日本精品一区二区三区| 亚洲夜晚福利在线观看| 一本一本久久a久久精品牛牛影视| 欧美日韩国产色站一区二区三区| 国产亚洲女人久久久久毛片| 国产精品国产馆在线真实露脸| 欧美三级中文字幕在线观看| 在线精品国产欧美| 亚洲一级黄色片| 国产精品午夜在线观看| 久久国产婷婷国产香蕉| 久久丁香综合五月国产三级网站| 国产精品视频免费观看www| 日韩天堂在线观看| 久久久久久9| 久久久精品一品道一区| 国产情人节一区| 日韩亚洲欧美一区| 91久久精品国产91久久性色| 美女诱惑一区| 欧美激情视频在线免费观看 欧美视频免费一| 欧美在线一二三四区| 欧美国产专区| 亚洲一区二区三区欧美| 久久精品国产一区二区三区| 亚洲精选国产| 国产综合久久久久久| 午夜性色一区二区三区免费视频| 久久综合伊人77777蜜臀| 国产精品热久久久久夜色精品三区| 欧美日韩国产色综合一二三四| 亚洲免费一区二区| 欧美日韩亚洲一区二| 亚洲国产裸拍裸体视频在线观看乱了中文| 在线成人免费视频| 久久免费精品日本久久中文字幕| 久久久久成人精品免费播放动漫| 一本色道久久加勒比精品| 性欧美xxxx大乳国产app| 亚洲精品久久久久久久久久久| 免费日韩成人| 亚洲人成亚洲人成在线观看| av成人手机在线| 欧美精品在线观看| 国产亚洲欧美中文| 久久国产精品高清| 亚洲日本成人女熟在线观看| 国产偷国产偷亚洲高清97cao| 欧美日韩1080p| 精品福利电影| 在线不卡视频| 蜜桃视频一区| 欧美成人福利视频| 极品少妇一区二区三区精品视频| 久久综合九色99| 久久久www成人免费毛片麻豆| 久久精品电影| 久久综合九色综合久99| 国产精品超碰97尤物18| 国产精品免费一区豆花| 亚洲欧美日韩网| 欧美激情1区| 亚洲视频第一页| 亚洲大片在线| 欧美午夜免费| 精品盗摄一区二区三区| 在线观看国产欧美| 久久久久久久网站| 亚洲国产精品视频一区| 亚洲一区二区在线| 99精品视频一区| 欧美精品v日韩精品v国产精品| 欧美成人福利视频| 亚洲免费在线视频一区 二区| 久久久精品午夜少妇| 99国产成+人+综合+亚洲欧美| 激情欧美国产欧美| 亚洲一区二区黄色| 国产精品va在线播放我和闺蜜| 亚洲国产精品va在线观看黑人| 欧美一区二区三区视频在线观看| 欧美一乱一性一交一视频| 欧美激情一区| 亚洲欧美日韩国产一区| 久久精品青青大伊人av| 欧美性理论片在线观看片免费| 99国产精品视频免费观看一公开| 亚洲一区二区免费看| 在线亚洲自拍| 国产日韩在线亚洲字幕中文| 国产精品夜色7777狼人| 欧美天天影院| 久久综合狠狠综合久久综合88| 欧美成年人网| 亚洲大胆女人| 亚洲欧美在线免费观看| 136国产福利精品导航网址| 亚洲午夜影视影院在线观看| 久久久久久噜噜噜久久久精品| 国产精品中文字幕在线观看| 国产午夜亚洲精品羞羞网站| 夜夜嗨网站十八久久| 久久婷婷国产麻豆91天堂| 欧美久久久久久久| 在线一区二区日韩| 久久青草久久| 国产亚洲精品激情久久| 欧美日韩在线不卡一区| 国产精品日韩欧美| 亚洲精品久久久久久一区二区| 国产欧美日韩精品丝袜高跟鞋| 久久gogo国模裸体人体| 欧美日韩亚洲一区二区三区在线| 欧美精品日韩www.p站| 亚洲少妇在线| 欧美日韩亚洲另类| 久久久亚洲一区| 免费精品99久久国产综合精品| 国产精品成人观看视频国产奇米| 国产精品美腿一区在线看| 欧美大片国产精品| 一区二区三区四区精品| 午夜精品美女久久久久av福利| 中国成人黄色视屏| 久久精品女人的天堂av| 亚洲国产婷婷香蕉久久久久久99| 亚洲欧美日韩国产综合| **欧美日韩vr在线| 亚洲日韩视频| 六月婷婷久久| 亚洲毛片av| 欧美福利网址| 国产精品免费区二区三区观看| 国产精品一区二区在线观看网站| 久久国内精品视频| 红杏aⅴ成人免费视频| 欧美日韩国产区| 亚洲欧美激情视频| 欧美成人高清视频| 国产精品一区二区三区四区五区| 亚洲素人一区二区| 亚洲欧美在线一区二区| 91久久一区二区| 欧美天堂亚洲电影院在线播放| 国产精品制服诱惑| 美女在线一区二区| 另类av一区二区| 99视频精品在线| 国产精品r级在线| 国产欧美日韩综合一区在线播放| 国产乱肥老妇国产一区二| 国产日韩综合一区二区性色av| 欧美日韩国产成人高清视频| 国产主播在线一区| 亚洲国产精品嫩草影院| 亚洲免费一级电影| 欧美一区视频| 99国产精品| 欧美色精品天天在线观看视频| 国产精品亚洲片夜色在线| 久久免费视频在线| 在线观看欧美日韩国产| 午夜精品免费视频| 亚洲成人自拍视频| 欧美午夜精品理论片a级按摩| 欧美中文在线视频| 精东粉嫩av免费一区二区三区| 午夜精品久久久久影视| 老牛嫩草一区二区三区日本| 欧美亚洲动漫精品| 在线电影院国产精品| 久久久久综合| 亚洲尤物在线视频观看| 可以免费看不卡的av网站| 欧美喷潮久久久xxxxx| 欧美视频在线观看一区二区| 久久免费99精品久久久久久| 国产午夜亚洲精品羞羞网站| 夜夜爽www精品| 欧美四级在线| 99精品国产在热久久下载| 国产日韩欧美在线播放不卡| 亚洲黄色av| 午夜在线播放视频欧美| 欧美成人午夜影院| 欧美在线首页| 夜夜嗨av一区二区三区网站四季av| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品国精品久久99热| 一本在线高清不卡dvd| 亚洲一区3d动漫同人无遮挡| 亚洲欧美国内爽妇网| 国内精品嫩模av私拍在线观看| 欧美大片网址| 国产精品日韩在线观看| 亚洲激情影院| 国产乱子伦一区二区三区国色天香| 国产日本精品| 亚洲精品乱码久久久久久按摩观| 欧美精品在线免费播放| 欧美视频专区一二在线观看| 欧美中文在线观看国产| 亚洲欧美中文字幕| 久久网站热最新地址| 国产精品美女久久久久久免费| 欧美在线免费视频| 韩日精品视频一区| 国产精品久久久久三级| 亚洲激情六月丁香| 亚洲欧洲日夜超级视频| 99国产精品视频免费观看| 91久久国产自产拍夜夜嗨| 午夜精品一区二区三区电影天堂| 在线免费观看日本欧美| 亚洲欧洲精品一区二区精品久久久| 亚洲黄色成人| 亚洲高清久久久| 伊人影院久久| 一色屋精品亚洲香蕉网站| 亚洲一区三区视频在线观看| 狠狠久久五月精品中文字幕| 激情综合五月天| 亚洲人成在线观看| 狂野欧美激情性xxxx欧美| 狠狠色丁香婷婷综合影院| 久久精品中文字幕一区二区三区| 国产精品一香蕉国产线看观看| 亚洲欧洲视频| 欧美大片在线影院| 国产精品国产福利国产秒拍| 国产乱码精品一区二区三区av| 欧美午夜宅男影院| 在线不卡中文字幕| 欧美主播一区二区三区美女 久久精品人| 欧美在线亚洲| 在线观看欧美成人| 久久久亚洲欧洲日产国码αv| 亚洲激情国产| 国产精品v一区二区三区| 欧美成人激情视频|