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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

基于android的网络音乐播放器-播放音乐及收藏音乐的效果展示(四)

發(fā)布時(shí)間:2024/3/26 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于android的网络音乐播放器-播放音乐及收藏音乐的效果展示(四) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作為android初學(xué)者,最近把瘋狂android講義和瘋狂Java講義看了一遍,看到書中介紹的知識(shí)點(diǎn)非常多,很難全部記住,為了更好的掌握基礎(chǔ)知識(shí)點(diǎn),我將開發(fā)一個(gè)網(wǎng)絡(luò)音樂播放器-EasyMusic來鞏固下,也當(dāng)作是練練手。感興趣的朋友可以看看,有設(shè)計(jì)不足的地方也歡迎指出。

開發(fā)之前首先介紹下該音樂播放器將要開發(fā)的功能(需求):

1.本地音樂的加載和播放;

2.網(wǎng)絡(luò)音樂的搜索,試聽和下載;

3.音樂的斷點(diǎn)下載;

4.點(diǎn)擊播放圖標(biāo)加載專輯圖片,點(diǎn)擊歌詞加載歌詞并滾動(dòng)顯示(支持滑動(dòng)歌詞改變音樂播放進(jìn)度);

5.支持基于popupWindow的彈出式菜單;

6.支持后臺(tái)任務(wù)欄顯示和控制。

該篇主要是貼上一些關(guān)鍵類的代碼以及音樂播放器的展示效果圖:
首先看下效果圖:
1>收藏音樂:

2>取消收藏:

然后主要代碼如下:

1.MainActivity.java

package com.sprd.easymusic;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map;import com.sprd.easymusic.fragment.DownloadFragment; import com.sprd.easymusic.fragment.MusicListFragment; import com.sprd.easymusic.fragment.NetFragment; import com.sprd.easymusic.fragment.StoredSongFragment; import com.sprd.easymusic.mysql.MyDBHelper; import com.sprd.easymusic.service.PlayMusicService;import android.app.Activity; import android.app.Service; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.database.Cursor; import android.os.Bundle; import android.os.IBinder; import android.provider.MediaStore; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast;public class MainActivity extends FragmentActivity implementsMusicListFragment.CallBack, StoredSongFragment.CallBack,View.OnClickListener {private String TAG = "MainActivity";private final int FRAGMENT_COUNT = 4;// dbMusic保存媒體庫(kù)中的所有音樂private ViewPager mViewPager;private SectionsPagerAdapter mSectionsPagerAdapter;private List<Map<String, Object>> allMusic = new ArrayList<>();private List<Map<String, Object>> storedMusic = new ArrayList<>();private Context mContext;private TextView fragmentTitle1, fragmentTitle2, fragmentTitle3,fragmentTitle4, titleBottomLine;private int screenWidth, bottomLineWidth;private PlayMusicService playService;private MyDBHelper myHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = this;myHelper = new MyDBHelper(mContext, "easyMusic.db3", null, 1);getAllMusicFromDb();getStoredMusic(storedMusic, myHelper);getBottomLineWidth();mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());mViewPager = (ViewPager) findViewById(R.id.pager);mViewPager.setAdapter(mSectionsPagerAdapter);fragmentTitle1 = (TextView) findViewById(R.id.fragment1);fragmentTitle1.setOnClickListener(this);fragmentTitle2 = (TextView) findViewById(R.id.fragment2);fragmentTitle2.setOnClickListener(this);fragmentTitle3 = (TextView) findViewById(R.id.fragment3);fragmentTitle3.setOnClickListener(this);fragmentTitle4 = (TextView) findViewById(R.id.fragment4);fragmentTitle4.setOnClickListener(this);titleBottomLine = (TextView) findViewById(R.id.fragmentTitle);bindToService();mViewPager.setOnPageChangeListener(new OnPageChangeListener() {public void onPageSelected(int position) {}public void onPageScrolled(int item, float percent, int offset) {titleBottomLine.setX(item * bottomLineWidth + offset/ FRAGMENT_COUNT);}public void onPageScrollStateChanged(int position) {}});}private void getBottomLineWidth() {DisplayMetrics dm = new DisplayMetrics();this.getWindowManager().getDefaultDisplay().getMetrics(dm);screenWidth = dm.widthPixels;bottomLineWidth = screenWidth / FRAGMENT_COUNT;}// 綁定服務(wù)時(shí)的ServiceConnection參數(shù)private ServiceConnection conn = new ServiceConnection() {// 綁定成功后該方法回調(diào),并獲得服務(wù)端IBinder的引用public void onServiceConnected(ComponentName name, IBinder service) {// 通過獲得的IBinder獲取PlayMusicService的引用playService = ((PlayMusicService.MusicBinder) service).getService();Toast.makeText(mContext, "onServiceConnected", Toast.LENGTH_LONG).show();}@Overridepublic void onServiceDisconnected(ComponentName name) {Log.d(TAG, "onServiceDisconnected");}};// 綁定服務(wù)PlayMusicServiceprivate void bindToService() {bindService(new Intent(mContext,com.sprd.easymusic.service.PlayMusicService.class), conn,Service.BIND_AUTO_CREATE);}// 通過獲得的PlayMusicService引用調(diào)用播放音樂的方法,方法傳進(jìn)去的參數(shù)為音樂urlprotected void playMusic(String url) {if (playService != null) {playService.play(url);}}// 從媒體庫(kù)中查詢音樂private void getAllMusicFromDb() {if (allMusic.size() > 0)allMusic.clear();Cursor musicCursor1 = this.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);// 從外部存儲(chǔ)獲取getMusic(musicCursor1);Cursor musicCursor2 = this.getContentResolver().query(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, null, null,null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);// 從內(nèi)部存儲(chǔ)獲取getMusic(musicCursor2);}// 檢查當(dāng)前歌曲是否在收藏列表中,在收藏列表返回true,否則返回falseprotected boolean checkIfStored(String url) {for (Map<String, Object> map : storedMusic) {if (url.equals((String) map.get("url"))) {return true;}}return false;}// 獲取到的音樂以Map的形式存儲(chǔ)在dbMusic中private void getMusic(Cursor musicCursor) {while (musicCursor.moveToNext()) {Map<String, Object> item = new HashMap<String, Object>();long id = musicCursor.getLong(musicCursor.getColumnIndex(MediaStore.Audio.Media._ID));String title = musicCursor.getString(musicCursor.getColumnIndex(MediaStore.Audio.Media.TITLE));String artist = musicCursor.getString(musicCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));if (artist != null && artist.equals("<unknown>")) {continue;}long duration = musicCursor.getLong(musicCursor.getColumnIndex(MediaStore.Audio.Media.DURATION));long size = musicCursor.getLong(musicCursor.getColumnIndex(MediaStore.Audio.Media.SIZE));String url = musicCursor.getString(musicCursor.getColumnIndex(MediaStore.Audio.Media.DATA));int isMusic = musicCursor.getInt(musicCursor.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC));if (isMusic != 0) {item.put("id", id);item.put("title", title);item.put("artist", artist);item.put("duration", formatDuration(duration));item.put("size", size);item.put("url", url);Log.d("MainActivity", "MusicTitle = " + title);Log.d("MainActivity", "MusicArtist = " + artist);Log.d("MainActivity", "MusicUrl = " + url);allMusic.add(item);}}}// 將音樂時(shí)長(zhǎng)轉(zhuǎn)換為00:00格式public static String formatDuration(long dur) {long totalSecond = dur / 1000;String minute = totalSecond / 60 + "";if (minute.length() < 2)minute = "0" + minute;String second = totalSecond % 60 + "";if (second.length() < 2)second = "0" + second;return minute + ":" + second;}// 從數(shù)據(jù)庫(kù)中查詢已收藏音樂private void getStoredMusic(List<Map<String, Object>> storedMusic,MyDBHelper myHelper) {if (storedMusic.size() > 0)storedMusic.clear();Cursor cursor = myHelper.getReadableDatabase().rawQuery("select * from stored_music", null);while (cursor.moveToNext()) {Map<String, Object> item = new HashMap<>();item.put("title", cursor.getString(1));item.put("artist", cursor.getString(2));item.put("duration", cursor.getString(3));item.put("url", cursor.getString(4));storedMusic.add(item);}}public class SectionsPagerAdapter extends FragmentPagerAdapter {public SectionsPagerAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int position) {Fragment fragment = null;switch (position) {case 0:fragment = new MusicListFragment();break;case 1:fragment = new StoredSongFragment();break;case 2:fragment = new NetFragment();break;case 3:fragment = new DownloadFragment();break;}return fragment;}@Overridepublic int getCount() {return FRAGMENT_COUNT;}@Overridepublic CharSequence getPageTitle(int position) {Locale l = Locale.getDefault();switch (position) {case 0:return getString(R.string.title_section1).toUpperCase(l);case 1:return getString(R.string.title_section2).toUpperCase(l);case 2:return getString(R.string.title_section3).toUpperCase(l);case 3:return getString(R.string.title_section4).toUpperCase(l);}return null;}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}@Overridepublic void onItemSelected(String url) {playMusic(url);}@Overridepublic List<Map<String, Object>> getAllMusic() {return allMusic;}@Overridepublic List<Map<String, Object>> getStoredMusic() {return storedMusic;}@Overridepublic void onClick(View v) {if (v == fragmentTitle1) {mViewPager.setCurrentItem(0);} else if (v == fragmentTitle2) {mViewPager.setCurrentItem(1);} else if (v == fragmentTitle3) {mViewPager.setCurrentItem(2);} else if (v == fragmentTitle4) {mViewPager.setCurrentItem(3);}} }

MainActivity主要負(fù)責(zé)管理整個(gè)音樂播放器應(yīng)用,像數(shù)據(jù)庫(kù)查詢,服務(wù)啟動(dòng)等都是該類負(fù)責(zé)。其布局為:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/LinearLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.sprd.easymusic.MainActivity" ><LinearLayout android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:background="#18f" ><TextView android:id="@+id/fragment1"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text="@string/title_section1"/><TextView android:id="@+id/fragment2"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text="@string/title_section2"/><TextView android:id="@+id/fragment3"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text="@string/title_section3"/><TextView android:id="@+id/fragment4"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text="@string/title_section4"/></LinearLayout><LinearLayout android:layout_width="match_parent"android:layout_height="3dp"android:gravity="center" ><!-- 該textview作為紅線移動(dòng)到當(dāng)前fragment下 --><TextView android:id="@+id/fragmentTitle"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:background="#f00" /><TextView android:id="@+id/textView6"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="3" /></LinearLayout><android.support.v4.view.ViewPager xmlns:tools="http://schemas.android.com/tools"android:id="@+id/pager"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="20"android:alpha="0.8"android:background="#afeeee"tools:context=".MainActivity" ></android.support.v4.view.ViewPager></LinearLayout>

2.MusicListFragment.java

package com.sprd.easymusic.fragment;import java.util.ArrayList; import java.util.List; import java.util.Map;import com.sprd.easymusic.R; import com.sprd.easymusic.mysql.MyDBHelper; import com.sprd.easymusic.myview.RefreshableListView;import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.support.v4.app.Fragment; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast;public class MusicListFragment extends Fragment {private final String TAG = "MusicListFragment";private final String ACTION_REFRESH = "action.refreshmusicList";private List<Map<String, Object>> dbMusic = new ArrayList<>();private List<Map<String, Object>> storedMusic = new ArrayList<>();private ListView musicListView;private LayoutInflater inflater;private CallBack mCallBack;private Context mContext;private MyDBHelper myHelper;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.d(TAG, "onCreate");mContext = this.getActivity();myHelper = new MyDBHelper(mContext, "easyMusic.db3", null, 1);inflater = LayoutInflater.from(mContext);dbMusic = mCallBack.getAllMusic();storedMusic = mCallBack.getStoredMusic();}// NetFragment向外界展示的內(nèi)容,返回值為viewpublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.musiclist, container, false);musicListView = (ListView) view.findViewById(R.id.musicList);musicListView.setAdapter(musicListAdapter);musicListView.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View view, int position, long id) {mCallBack.onItemSelected((String) dbMusic.get(position).get("url"));TextView title = (TextView) view.findViewWithTag("title");Toast.makeText(mContext,"title = " + title.getText().toString(),Toast.LENGTH_SHORT).show();}});return view;}// 音樂列表適配器private BaseAdapter musicListAdapter = new BaseAdapter() {@Overridepublic int getCount() {return dbMusic.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {View view = convertView;Map<String, Object> item = dbMusic.get(position);if (convertView == null) {view = inflater.inflate(R.layout.musiclist_item, null);}final ImageView storeMusic = (ImageView) view.findViewById(R.id.love);if (checkIfStored((String) item.get("url"))) {storeMusic.setImageResource(android.R.drawable.btn_star_big_on);} else {storeMusic.setImageResource(android.R.drawable.btn_star_big_off);}storeMusic.setOnClickListener(new OnClickListener() {public void onClick(View v) {new MyAsyncTask(storeMusic, dbMusic.get(position)).execute();}});TextView musicTitle = (TextView) view.findViewById(R.id.musicTitle);musicTitle.setTag("title");TextView musicArtist = (TextView) view.findViewById(R.id.musicArtist);musicTitle.setText((String) item.get("title"));musicArtist.setText((String) item.get("artist"));return view;}};// 檢查當(dāng)前歌曲是否在收藏列表中,在收藏列表返回true,否則返回falseprotected boolean checkIfStored(String url) {for (Map<String, Object> map : storedMusic) {if (url.equals((String) map.get("url"))) {return true;}}return false;}// 執(zhí)行收藏或者取消收藏動(dòng)作后刷新刷收藏音樂列表private void refreshStoredMusic(Map<String, Object> musicInfo) {int i = 0;for (; i < storedMusic.size(); i++) {Map<String, Object> map = storedMusic.get(i);String url = (String) map.get("url");if (url.equals((String) musicInfo.get("url"))) {Log.d(TAG, "remove index =" + i);storedMusic.remove(i);//musicListAdapter.notifyDataSetChanged();mContext.sendBroadcast(new Intent(ACTION_REFRESH));return;}}storedMusic.add(musicInfo);//發(fā)送廣播通知StoredSongFargment更新列表mContext.sendBroadcast(new Intent(ACTION_REFRESH));// 刷新收藏列表有兩種方法:1:重新查詢一次數(shù)據(jù)庫(kù)-調(diào)用getStoredMusic(),這種效率比較低;2:用上面的方法,直接從storedMusic中刪除或添加// 這里用第一種方法// getStoredMusic();// 通知適配器數(shù)據(jù)發(fā)生改變的方法來刷新列表,最好別用musicListView.setAdapter(adapter)這種方法,該方法會(huì)導(dǎo)致焦點(diǎn)重新回到首行//musicListAdapter.notifyDataSetChanged();}public void onAttach(Activity activity) {super.onAttach(activity);mCallBack = (CallBack) activity;}public void onDestroy() {super.onDestroy();}public interface CallBack {public void onItemSelected(String url);public List<Map<String, Object>> getAllMusic();public List<Map<String, Object>> getStoredMusic();}// 執(zhí)行收藏音樂/取消收藏的異步任務(wù)private class MyAsyncTask extends AsyncTask<String, Void, Void> {private ImageView starView;private Map<String, Object> musicInfo;// 標(biāo)記收藏,true表示收藏音樂成功,false表示取消收藏音樂private boolean storeSuccess;public MyAsyncTask(ImageView starView, Map<String, Object> musicInfo) {this.starView = starView;this.musicInfo = musicInfo;}protected void onPreExecute() {super.onPreExecute();}protected void onProgressUpdate(Void... values) {super.onProgressUpdate(values);}protected Void doInBackground(String... params) {Log.d(TAG, "doInBackground");Cursor cursor = myHelper.getReadableDatabase().rawQuery("select * from stored_music", null);while (cursor.moveToNext()) {String title = cursor.getString(1);String artist = cursor.getString(2);Log.d(TAG, "title = " + title + " artist = " + artist);Log.d(TAG,"musicInfo.title = " + (String) musicInfo.get("title")+ " musicInfo.artist = "+ (String) musicInfo.get("artist"));if (cursor.getString(4).equals((String) musicInfo.get("url"))) {// 已經(jīng)收藏的音樂取消收藏并移出收藏音樂表格-stored_musicmyHelper.getReadableDatabase().execSQL("delete from stored_Music where title like ? and artist like ?",new String[] { title, artist });storeSuccess = false;return null;}}// 未收藏的音樂加入到收藏中myHelper.getReadableDatabase().execSQL("insert into stored_music values(null, ?, ?, ?, ?)",new Object[] { musicInfo.get("title"),musicInfo.get("artist"), musicInfo.get("duration"),musicInfo.get("url") });storeSuccess = true;return null;}protected void onPostExecute(Void result) {super.onPostExecute(result);if (storeSuccess) {starView.setImageResource(android.R.drawable.btn_star_big_on);refreshStoredMusic(musicInfo);Toast.makeText(mContext, "收藏成功", 100).show();} else {starView.setImageResource(android.R.drawable.btn_star_big_off);refreshStoredMusic(musicInfo);Toast.makeText(mContext, "取消收藏", 100).show();}}}}

MusicListFragment主要顯示本地音樂,并提供音樂的收藏和取消收藏操作(異步任務(wù)來完成該操作)。其布局文件為:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ListView android:id="@+id/musicList"android:layout_width="match_parent"android:layout_height="wrap_content" ></ListView></LinearLayout>

ListView的每個(gè)item布局為:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/RelativeLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical"android:orientation="horizontal"android:padding="5dp" ><ImageView android:id="@+id/musicTag"android:layout_width="50dp"android:layout_height="40dp"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:layout_centerVertical="true"android:src="@drawable/music" /><TextView android:id="@+id/musicTitle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_toRightOf="@id/musicTag"android:singleLine="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"/><TextView android:id="@+id/musicArtist"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/musicTitle"android:layout_toRightOf="@id/musicTag"android:text="TextView" /><ImageView android:id="@+id/love"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/musicTag"android:layout_alignParentRight="true"android:src="@android:drawable/btn_star_big_off"/></RelativeLayout>

3.StoredSongFragment.java

package com.sprd.easymusic.fragment;import java.util.ArrayList; import java.util.List; import java.util.Map;import com.sprd.easymusic.R; import com.sprd.easymusic.myview.RefreshableListView;import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.support.v4.app.Fragment; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener;public class StoredSongFragment extends Fragment {private final String TAG = "StoredSongFragment";private final String ACTION_REFRESH = "action.refreshmusicList";private List<Map<String, Object>> storedMusic = new ArrayList<>();private ListView storedMusicList;private CallBack mCallBack;private LayoutInflater inflater;private Context mContext;public void onAttach(Activity activity) {super.onAttach(activity);mCallBack = (CallBack) activity;}public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mContext = this.getActivity();inflater = LayoutInflater.from(mContext);storedMusic = mCallBack.getStoredMusic();IntentFilter filter = new IntentFilter();filter.addAction(ACTION_REFRESH);mContext.registerReceiver(refreshMusicReceiver, filter);Log.d(TAG, "onCreate");}// StoredSongFragment向外界展示的內(nèi)容,返回值為viewpublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.storedmusiclist, container, false);storedMusicList = (ListView) view.findViewById(R.id.storedmusicList);storedMusicList.setAdapter(musicListAdapter);storedMusicList.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View view, int position, long id) {mCallBack.onItemSelected((String) storedMusic.get(position).get("url"));TextView title = (TextView) view.findViewWithTag("title");Toast.makeText(mContext, "title = " + title.getText().toString(),Toast.LENGTH_SHORT).show();}});return view;}// 音樂列表適配器private BaseAdapter musicListAdapter = new BaseAdapter() {public int getCount() {return storedMusic.size();}public Object getItem(int position) {return null;}public long getItemId(int position) {return position;}public View getView(final int position, View convertView, ViewGroup parent) {View view = convertView;Map<String, Object> item = storedMusic.get(position);if (convertView == null) {view = inflater.inflate(R.layout.storedmusiclist_item, null);}TextView musicTitle = (TextView) view.findViewById(R.id.musicTitle);musicTitle.setTag("title");TextView musicArtist = (TextView) view.findViewById(R.id.musicArtist);musicTitle.setText((String) item.get("title"));musicArtist.setText((String) item.get("artist"));return view;}};public void onDestroy() {if (refreshMusicReceiver != null) mContext.unregisterReceiver(refreshMusicReceiver);super.onDestroy();}public interface CallBack {public void onItemSelected(String url);public List<Map<String, Object>> getStoredMusic();}//接收來自MusicListFragment的收藏或取消收藏音樂的廣播,并更新收藏列表private BroadcastReceiver refreshMusicReceiver = new BroadcastReceiver() {public void onReceive(Context context, Intent intent) {if (intent.getAction().equals(ACTION_REFRESH)) {musicListAdapter.notifyDataSetChanged();Toast.makeText(mContext, "刷新收藏列表成功!", 100).show();}}};}

StoredSongFragment主要顯示收藏的音樂,也提供播放監(jiān)聽,其布局與MusicListragment幾乎一樣(區(qū)別在listview的item是否有收藏圖標(biāo)),因此就不提供了,參考MusicListragment的布局即可。

音樂播放器已完成,下載地址:
Android音樂播放器

總結(jié)

以上是生活随笔為你收集整理的基于android的网络音乐播放器-播放音乐及收藏音乐的效果展示(四)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产视频资源在线观看 | 久草在线免费新视频 | 成人在线超碰 | av高清网站在线观看 | 精品一区av | 在线观看视频你懂得 | 日本精品久久久久久 | 一区二区 精品 | 狠狠五月天 | 精品一区二区三区四区在线 | 久久精品欧美 | 国产精品免费观看久久 | 免费看黄在线看 | 亚洲aⅴ乱码精品成人区 | 天天艹天天 | 青青看片 | 黄色免费网战 | 日韩中文字幕视频在线 | 99在线观看视频网站 | av在线播放一区二区三区 | 久久精品79国产精品 | 日韩精品一区二区三区中文字幕 | 久久久精品一区二区 | 夜夜高潮夜夜爽国产伦精品 | 深夜男人影院 | 国产一区二区久久久 | 亚洲精品视频免费看 | 狠狠狠色丁香婷婷综合激情 | 狠狠操在线 | 国产看片免费 | 精品国产日本 | 国产一级二级在线观看 | 国产亚洲精品成人av久久ww | av不卡免费看 | 探花视频网站 | 91视频在线观看大全 | 欧美一区二区三区在线视频观看 | 午夜精品剧场 | 人人插人人做 | 天天色宗合 | 欧美精品天堂 | 国产精品视频永久免费播放 | 中文在线免费视频 | 国产精品久久久久毛片大屁完整版 | 高清不卡一区二区三区 | 日韩精品视频免费在线观看 | 91大神视频网站 | 欧洲精品码一区二区三区免费看 | 日日操操操 | 久久不见久久见免费影院 | 91网在线看| 成人午夜免费福利 | 国产黑丝一区二区三区 | 国产高清av免费在线观看 | 免费看污黄网站 | 精品在线播放视频 | 久久久久久免费视频 | 99久久影院 | 久久精品国产v日韩v亚洲 | 91在线视频导航 | av性网站| 亚洲黄色一级大片 | 欧美日韩在线观看一区二区三区 | 久久国产精品小视频 | 97超碰人人澡 | 五月花丁香婷婷 | 中文字幕在线观看视频一区 | www天天干 | 国产成人综合精品 | 在线观看免费成人 | 天天干夜夜想 | 奇米网8888| 日本精品中文字幕在线观看 | 日韩精品一区二区三区免费观看视频 | 天天碰天天操视频 | 99久久99热这里只有精品 | 亚洲九九九在线观看 | 91片网| 精品色综合 | 午夜在线资源 | 五月天久久综合 | 美女网站免费福利视频 | 亚洲欧美日韩国产精品一区午夜 | 亚洲在线网址 | 国产一区二区在线视频观看 | 天天射天天舔天天干 | 亚洲综合色丁香婷婷六月图片 | 91免费版在线观看 | 中文字幕在线成人 | 美女视频黄在线观看 | 三级av小说| 97日日碰人人模人人澡分享吧 | 91在线观看视频 | 成人免费在线播放视频 | 日本公乱妇视频 | 久久国内免费视频 | 日韩中文字幕免费在线播放 | 久久婷婷网| 国产精品9999久久久久仙踪林 | 亚洲一区 av | 在线免费黄 | 综合精品在线 | 美女网站视频一区 | 日本成人免费在线观看 | 国产成人91| 99热这里只有精品国产首页 | 精品一二三区 | 亚洲精品午夜视频 | 三级av在线免费观看 | 久草视频在线免费 | 99精品在线免费在线观看 | 在线免费观看黄色 | 国产精品va在线播放 | 肉色欧美久久久久久久免费看 | 欧美日韩免费视频 | bbw av| 极品久久久久久久 | 天天综合网在线 | 免费久久视频 | 色丁香久久 | 精品理论片 | 中国黄色一级大片 | www.在线观看视频 | 精品国产电影一区 | 久久国产剧场电影 | 久久久精品免费看 | 久久免费一 | 亚洲精品国产精品乱码在线观看 | 韩国av免费看 | 国产精品99爱 | 亚洲夜夜网 | 天天舔天天射天天操 | 色一级片 | 国产小视频你懂的在线 | 91亚洲国产成人久久精品网站 | 免费又黄又爽视频 | 欧美午夜理伦三级在线观看 | 欧美疯狂性受xxxxx另类 | 亚洲精品久久久久999中文字幕 | 日韩欧美网址 | 特级黄色片免费看 | 亚洲国产欧美在线人成大黄瓜 | 日韩三级在线 | 高清av在线 | 66av99精品福利视频在线 | www.黄色小说.com | 在线看黄色的网站 | 久久久免费在线观看 | 国产综合小视频 | 欧美极品一区二区三区 | 久久免费毛片视频 | 91av视频在线免费观看 | 91重口视频| 波多野结衣在线视频一区 | 亚洲天堂网视频在线观看 | 精品福利网| 99热99热| 天天色棕合合合合合合 | 精品在线一区二区三区 | 国产 字幕 制服 中文 在线 | 91精品国自产拍天天拍 | 午夜电影av | 国产精品精品国产色婷婷 | 国产精品视频不卡 | 久久精品99国产精品亚洲最刺激 | 欧美一区二区三区不卡 | 免费视频黄色 | 久久久国产精品一区二区中文 | 婷婷5月色| 91亚洲精品久久久蜜桃 | 五月天国产精品 | 在线天堂8√ | 日本在线观看中文字幕无线观看 | 成人网页在线免费观看 | 欧美日韩中文国产一区发布 | 国产精品久久久亚洲 | 美女国产| 国产精品涩涩屋www在线观看 | 2022国产精品视频 | 99精品国产兔费观看久久99 | 欧美做受69 | 国产精品一区二区吃奶在线观看 | av理论电影 | 久久久久久不卡 | www.天天射 | 伊人五月综合 | 国产成人久 | 日批网站免费观看 | 99草视频| 国产香蕉久久精品综合网 | 国产伦理精品一区二区 | 六月激情久久 | 美女在线观看网站 | 欧美精品二 | 色综合天天射 | 久久久久网址 | 国产亚洲高清视频 | 国产成人精品福利 | 国产中文字幕91 | 五月天久久久久 | 成人小视频在线免费观看 | 草久视频在线观看 | 久久久久久久久毛片精品 | av黄色影院 | 黄网站色成年免费观看 | 国产污视频在线观看 | 久久国产精品系列 | 在线观看免费观看在线91 | 奇米网网址 | 中文字幕一区二区三区精华液 | 欧美视频在线观看免费网址 | free,性欧美 九九交易行官网 | 91高清免费观看 | 久久字幕 | 久久九九久久九九 | 一区二区三区在线观看 | 日韩啪啪小视频 | 久久这里有精品 | 日韩亚洲欧美中文字幕 | 国产一级不卡毛片 | 国产高清免费观看 | 久久久久北条麻妃免费看 | 国产高清视频在线播放 | 亚洲国产美女精品久久久久∴ | 高清精品视频 | 国产精品麻豆免费版 | 欧美日韩免费一区 | 99 色 | 免费又黄又爽 | 久草99 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 黄色网址中文字幕 | 精品国产福利在线 | а中文在线天堂 | 日韩欧美一区二区三区视频 | 在线欧美小视频 | 色婷婷激婷婷情综天天 | 国产日本亚洲高清 | 69国产盗摄一区二区三区五区 | 又黄又刺激 | 精品超碰| 美女搞黄国产视频网站 | 久久久免费国产 | 欧美激情在线网站 | а天堂中文最新一区二区三区 | 天堂va欧美va亚洲va老司机 | 在线精品观看 | 中字幕视频在线永久在线观看免费 | 日韩一级成人av | 97色视频在线 | 精品国产欧美一区二区三区不卡 | 99免费在线视频 | 99精品久久久久久久久久综合 | 亚洲国产精品视频在线观看 | 亚洲精品女 | 亚洲精品视频第一页 | 日韩午夜视频在线观看 | 久久久午夜精品理论片中文字幕 | 又黄又爽又刺激的视频 | 九九影视理伦片 | av网站免费线看精品 | 日韩高清在线看 | 青青河边草观看完整版高清 | 日韩 国产 | 香蕉精品在线观看 | 午夜国产一区二区三区四区 | 在线免费av观看 | 国产视频在线观看一区二区 | 婷婷成人亚洲综合国产xv88 | 成人影片在线免费观看 | 99久久综合精品五月天 | 久久久久久久久久久久久久av | 久久另类视频 | 日本在线观看中文字幕无线观看 | 在线观看成人毛片 | 人人天天夜夜 | 99精品免费视频 | 国产成人av一区二区三区在线观看 | 91精品久久久久久综合五月天 | 五月婷婷六月丁香 | 国产精品久久久久久久久久三级 | 久久久久久免费毛片精品 | 久久视频网址 | 日韩精品最新在线观看 | 久久成人国产精品 | 中文在线字幕免费观看 | 日韩久久精品一区二区 | 九九免费在线观看视频 | 日本最新中文字幕 | 欧美性色xo影院 | 亚洲黄色在线观看 | 久久网站最新地址 | 国产精品va最新国产精品视频 | 四虎成人在线 | 久久精品牌麻豆国产大山 | 91精品中文字幕 | 99视频精品全国免费 | 欧美a视频| 成人a v视频 | 国产91aaa | 伊人狠狠操 | 亚洲精品美女在线观看 | 欧美一区二区在线 | 国产精品国产三级国产 | 伊人五月天 | 国产a级免费 | 亚洲精品动漫成人3d无尽在线 | 久久综合色8888 | 偷拍福利视频一区二区三区 | jizz18欧美18 | 91电影福利 | 伊甸园av在线 | 久久精品系列 | 亚洲精品白浆高清久久久久久 | 9在线观看免费高清完整版在线观看明 | 国产五码一区 | 91精品一区二区三区久久久久久 | 午夜在线资源 | 国产 日韩 欧美 中文 在线播放 | 在线播放第一页 | 亚洲综合在线观看视频 | 中文在线8资源库 | 8x成人免费视频 | 久久亚洲专区 | 久久精视频 | 三上悠亚在线免费 | 午夜精品久久久久久久99水蜜桃 | 国产精品女人网站 | 日韩性色 | 91大神dom调教在线观看 | 亚洲天堂香蕉 | 亚洲精品日韩在线观看 | 亚洲电影自拍 | 天天舔天天搞 | 成人免费视频视频在线观看 免费 | 国产一线二线三线性视频 | 少妇bbb搡bbbb搡bbbb′ | 免费a级毛片在线看 | 欧美日韩三级在线观看 | 六月丁香伊人 | 亚洲影院天堂 | 亚洲视频精品在线 | 国产精品成人免费精品自在线观看 | 丁香婷婷综合五月 | 狠狠ri| 国产精品亚州 | 人人看人人爱 | 欧美精品乱码99久久影院 | 久草视频手机在线 | 狠狠干婷婷色 | 婷婷视频导航 | 免费看成人片 | 国产美女视频免费观看的网站 | 国产精品一区二区久久精品 | 国产精品av在线免费观看 | 久久久久久久久久久网 | 毛片基地黄久久久久久天堂 | 国产色女 | 欧美日韩中文另类 | 天天操天天干天天操天天干 | 中字幕视频在线永久在线观看免费 | 中文字幕在线视频一区二区三区 | 国产日韩欧美在线 | 看片在线亚洲 | 国产精品黄网站在线观看 | 91精品婷婷国产综合久久蝌蚪 | 国产视频欧美视频 | 天天插日日插 | 亚洲视频电影在线 | 成人免费视频网 | 国产夫妻自拍av | 国产高清绿奴videos | 在线国产激情视频 | 国内一区二区视频 | 国产精品久久久久久久午夜片 | 深夜免费小视频 | 97视频在线观看播放 | 狠狠干网 | 五月天丁香亚洲 | 国产精品女主播一区二区三区 | 欧美亚洲久久 | 狠狠色丁香婷婷综合基地 | 色在线中文字幕 | 国产一级片不卡 | 国产香蕉97碰碰久久人人 | 欧美日韩国产综合一区二区 | 五月天天色 | 国产成人久久精品一区二区三区 | www.超碰| 国产在线观看,日本 | 免费在线观看国产精品 | 中文字幕视频播放 | 国产高清中文字幕 | 亚洲精品网站 | 中文字幕在线一区二区三区 | 中文字幕一区二区三区久久 | 91精品国产综合久久婷婷香蕉 | 亚洲国产美女精品久久久久∴ | 在线观看中文字幕2021 | 久久成人精品电影 | 最新av网址在线 | 亚洲在线视频免费观看 | 成人免费网视频 | av片在线观看 | 丁香婷婷久久久综合精品国产 | www.色com| 在线亚洲成人 | 国产成视频在线观看 | 国产色a在线观看 | 狠狠综合久久av | 久草在线91| 免费观看视频黄 | 国产午夜精品一区二区三区 | 亚洲国产三级在线观看 | 免费看黄在线 | 美女网站视频色 | 久热爱 | 黄网站www | 国产午夜一区二区 | 久久久69| 婷婷综合网 | 欧美日韩另类在线观看 | www.香蕉视频在线观看 | 国产精品美女久久久 | 国产福利一区二区三区在线观看 | 不卡的av片 | 欧美在线观看视频一区二区 | 九色福利视频 | 天天射综合 | 亚洲国产高清在线观看视频 | 亚洲免费视频在线观看 | 超碰在线98 | 中文字幕 国产精品 | 极品嫩模被强到高潮呻吟91 | 在线视频福利 | 久久综合九九 | 日韩午夜一级片 | 国产91国语对白在线 | 精品视频免费久久久看 | 欧美日韩综合在线观看 | 97超碰在线免费 | 91成人精品国产刺激国语对白 | 精品美女久久久久久免费 | 色噜噜狠狠狠狠色综合久不 | 丁香资源影视免费观看 | 婷婷六月天在线 | 亚洲无吗av | 国产精品久久久久久爽爽爽 | 久久视频在线观看中文字幕 | 国产精品久久久久久69 | 欧美一级免费高清 | 一本一本久久a久久精品牛牛影视 | 天天干天天干天天操 | 亚洲综合日韩在线 | 国产色婷婷精品综合在线手机播放 | 色婷婷中文 | 国产白浆视频 | 黄色av观看 | 99精品国产高清在线观看 | 九九热精品在线 | 久久精品第一页 | 中文在线a√在线 | 日韩首页| 国产亚洲精品女人久久久久久 | 亚洲精品久久久久久久不卡四虎 | 亚洲乱码久久 | 中文字幕在线视频精品 | 国产精品第 | 欧美va在线观看 | 久久免视频| 7799av | 国产成人免费在线观看 | 欧美精品久久久久久久久老牛影院 | 成人黄色资源 | 一级做a爱片性色毛片www | 亚州视频在线 | 国产999精品久久久影片官网 | 精品一区二区三区在线播放 | 波多野结衣小视频 | av丝袜天堂| 久久精品视频中文字幕 | 五月婷社区 | 91精品专区 | 亚洲91网站 | 91在线亚洲 | 中文字幕在线播放一区 | www.天天射.com | 精品少妇一区二区三区在线 | 日日夜夜精品视频天天综合网 | 亚洲精品久久久久久久不卡四虎 | 黄色在线观看www | 久久久久久久久毛片精品 | 日韩一级片大全 | 亚洲在线网址 | 日韩电影黄色 | 中文字幕乱码电影 | 中文字幕国产在线 | 久久激情视频免费观看 | 亚洲天天看| 欧美日韩国内在线 | 成年人在线播放视频 | 99这里都是精品 | 天天干天天碰 | 97成人超碰 | 国产韩国日本高清视频 | 在线国产小视频 | 香蕉影视app | 日韩免费一区二区在线观看 | 国产96视频 | av再线观看 | 99久久er热在这里只有精品15 | 亚洲国产精品999 | 免费观看一区 | 日韩久久一区 | 欧美一级高清片 | 豆豆色资源网xfplay | 2021国产在线视频 | 亚洲综合爱 | 五月婷婷在线综合 | 狠狠躁夜夜a产精品视频 | 欧美日韩中文在线视频 | 99久久久久久国产精品 | 成人动漫精品一区二区 | 久久久久久久免费观看 | 亚洲影院天堂 | 日本黄色免费大片 | 欧美日韩免费看 | 精品免费久久久久 | av线上看 | av在线网站大全 | 午夜精品一区二区三区免费 | 亚洲日本中文字幕在线观看 | 亚洲国产97在线精品一区 | 午夜资源站 | 国产又粗又猛又色又黄视频 | 综合激情婷婷 | 在线观看国产 | 国内精品中文字幕 | 丰满少妇对白在线偷拍 | 国产涩涩在线观看 | 蜜臀久久99精品久久久久久网站 | 亚州精品在线视频 | 国产精品日韩久久久久 | 偷拍视频一区 | 一级理论片在线观看 | 男女激情网址 | 久久精品第一页 | 午夜体验区 | 国产成人免费观看 | 亚洲 欧美 日韩 综合 | 亚洲国产资源 | 欧美激情亚洲综合 | 日韩精品资源 | 久久婷婷一区二区三区 | 91欧美日韩国产 | 欧美有色 | 久久精品免费看 | 国产在线精品福利 | 在线观看日本高清mv视频 | 国产成人精品综合 | 免费涩涩网站 | 九九在线视频免费观看 | 婷婷色在线资源 | 99久热在线精品视频 | 狠狠色婷婷丁香六月 | 九九免费在线观看视频 | 天天草综合网 | 天天av资源| 欧美一区二区三区在线视频观看 | 亚洲人片在线观看 | 精品国产成人 | www日日 | 日韩中文字幕免费在线观看 | 国产在线高清视频 | 插久久 | 日韩精品不卡在线 | 亚洲精品久久久久久中文传媒 | 欧美色黄 | 国产裸体bbb视频 | 久久久久久久免费看 | 手机色站 | 色婷婷av一区 | 国产精品24小时在线观看 | 国产精品毛片久久久久久 | 国产电影一区二区三区四区 | 欧美视频在线观看免费网址 | 国产成人在线免费观看 | 国产精品视频免费 | 黄色免费网战 | 99热最新在线 | 91欧美视频网站 | 欧美a级在线免费观看 | 国产精品中文字幕在线播放 | 国精产品999国精产品视频 | 免费欧美高清视频 | av成人动漫在线观看 | 久久爱资源网 | 国产在线观看国语版免费 | 免费观看国产视频 | 中文字幕视频观看 | 性色视频在线 | 麻豆一精品传二传媒短视频 | 亚洲精品美女在线观看播放 | 五月婷香蕉久色在线看 | 久久成人综合视频 | 国产日女人 | 国产涩涩在线观看 | 色婷五月| 97国产 | 亚洲国产三级在线 | 欧美另类重口 | 99re8这里有精品热视频免费 | 日韩视频免费看 | www在线观看视频 | 女人18毛片a级毛片一区二区 | 国产日韩一区在线 | 国产精品ⅴa有声小说 | 久久亚洲美女 | 日韩 在线 | 久久午夜精品视频 | 最新av电影网址 | 午夜av免费在线观看 | 精品国产电影一区二区 | 亚洲一级影院 | 亚洲国产99 | 亚洲激精日韩激精欧美精品 | 天天拍夜夜拍 | 视频在线观看亚洲 | 国产一区二区高清视频 | 精品久久毛片 | 国产视频二区三区 | 久久久免费在线观看 | www.亚洲精品视频 | 天天操天天干天天摸 | 日批网站在线观看 | 久久 一区 | 一二三久久久 | 欧美日韩不卡在线 | 欧美在线99 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 最新久久久 | 久草网站在线观看 | 亚洲精品国产电影 | 69视频在线 | 一区二区久久久久 | 99久久精品费精品 | 亚洲国产成人精品在线观看 | 亚洲精品久久久蜜臀下载官网 | 日韩欧美在线一区二区 | 久久久久久影视 | 欧美一级视频在线观看 | 日韩视频一二三区 | 超碰国产在线观看 | 欧美一级高清片 | av免费在线看网站 | 国产又黄又爽又猛视频日本 | 日日夜夜精品免费观看 | 九九久久久久久久久激情 | 欧美超碰在线 | 99久免费精品视频在线观看 | 中文字幕久久精品 | 91在线精品观看 | 黄网在线免费观看 | 国产涩图 | 色资源网免费观看视频 | 国产97碰免费视频 | 91大神精品视频在线观看 | 欧美日韩视频网站 | 综合网中文字幕 | 国产区av在线 | 午夜视频不卡 | 超碰在线人人97 | 中文字幕在线免费观看视频 | 亚洲v欧美v国产v在线观看 | 五月婷婷.com | 色五月色开心色婷婷色丁香 | 免费观看www小视频的软件 | 青青草国产免费 | 久影院| 久久国产精品视频免费看 | 91桃色在线免费观看 | 欧美污在线观看 | www.久久久精品 | 五月婷婷六月丁香激情 | 亚洲无吗视频在线 | 国产精品99久久久久久有的能看 | 日韩在线观看高清 | 精品99999 | 成年人在线免费看视频 | 国产成人精品亚洲日本在线观看 | 日韩av在线免费看 | 国产免费三级在线观看 | 国产生活一级片 | 日韩专区视频 | 欧美日韩精品区 | 日韩一区正在播放 | 精品成人a区在线观看 | 黄色三级免费看 | a黄色片在线观看 | 久久精品99国产精品亚洲最刺激 | 国产黄a三级三级三级三级三级 | 免费看av片网站 | 亚洲手机天堂 | 99精品一级欧美片免费播放 | 亚洲国产日韩av | 狠狠的日| 国产精品ssss在线亚洲 | 97精品免费视频 | 一区二区欧美激情 | 欧美a级免费视频 | 成人黄在线观看 | 欧美91精品久久久久国产性生爱 | 一区二区高清在线 | 在线午夜 | 国产精品 国内视频 | 亚洲永久精品在线观看 | 欧美色黄 | 亚洲一区二区高潮无套美女 | 日韩xxxx视频 | 在线观看 国产 | 色综合色综合色综合 | 免费看黄20分钟 | av在线网站大全 | 婷婷伊人五月 | 99久免费精品视频在线观看 | 国产高清视频在线免费观看 | 免费看十八岁美女 | 久亚洲| 欧美性护士 | 久久久国产精品亚洲一区 | 日韩欧美一区二区三区视频 | 久久99国产精品久久99 | 国产尤物在线观看 | 日日射av | 在线观看黄av | 国产在线精品福利 | 亚洲麻豆精品 | 欧美久久久久久久久中文字幕 | 久草手机视频 | 亚洲精品成人av在线 | 久影院| 99久久久久久久久久 | 久久综合综合久久综合 | 国产精品毛片久久久久久久久久99999999 | 欧美日韩在线观看一区二区三区 | 国产免费观看久久 | 国产欧美中文字幕 | 国产精品一区二区麻豆 | 婷婷综合伊人 | 天天色天 | 国产精品情侣视频 | 五月婷香蕉久色在线看 | 国产精品国产三级在线专区 | 亚洲精品欧美视频 | 成人a免费看 | 欧美一二三视频 | 97在线视频免费播放 | 久久成人高清 | 免费高清在线观看成人 | 亚洲视频2 | 亚洲va在线va天堂va偷拍 | 国产一级片不卡 | 96久久精品 | 综合色在线 | 在线观看亚洲a | 二区三区在线视频 | 久草成人在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 人人天天夜夜 | 黄色在线小网站 | 国产中文字幕在线视频 | 欧美大jb| 99久久一区| 中文字幕一二三区 | 久草在线免费看视频 | 久久国产精品免费看 | 九九综合久久 | 国产在线播放一区二区 | 国产午夜一区二区 | 久久成电影 | 黄污网站在线 | 亚洲爱视频 | 久久无码av一区二区三区电影网 | 美女久久网站 | 国产999精品久久久久久绿帽 | 国产欧美三级 | 日韩和的一区二在线 | www.久久色 | 天天干天天做天天操 | 日韩视频a | 西西人体4444www高清视频 | 午夜视频一区二区三区 | 日本视频久久久 | 亚洲最快最全在线视频 | 99国产精品久久久久久久久久 | 国产精品夜夜夜一区二区三区尤 | 中文字幕av全部资源www中文字幕在线观看 | 成人三级网站在线观看 | 亚洲一区二区三区四区在线视频 | 国产成人av在线影院 | 97成人精品区在线播放 | 一本一本久久a久久 | 天天操天天操天天操天天操天天操天天操 | 久久国产精品久久久 | 国产人成看黄久久久久久久久 | 亚洲小视频在线观看 | 国产一区视频免费在线观看 | 免费看片成人 | av在线等 | 亚洲天堂自拍视频 | 中文欧美字幕免费 | 久久蜜桃av | 日黄网站 | 久久久久久久久久亚洲精品 | 色婷婷一| 欧美 日韩 国产 成人 在线 | 六月色丁| 久久欧洲视频 | 精品一区二区影视 | 国产日产欧美在线观看 | 五月香视频在线观看 | 91精品欧美一区二区三区 | 亚洲国产精品久久 | 国产福利在线 | 五月宗合网 | 99视频在线播放 | 五月天综合网站 | 亚洲三级在线播放 | 97偷拍视频 | 日韩久久久久久久久久 | 婷婷丁香在线观看 | 国产日韩欧美视频 | 在线免费观看麻豆视频 | 国产午夜精品理论片在线 | 国产色妞影院wwwxxx | 久久久久激情 | 草樱av| 日韩动漫免费观看高清完整版在线观看 | 日韩三级视频 | 国产成人久久av免费高清密臂 | 丰满少妇在线观看网站 | 夜夜夜夜夜夜操 | 国产尤物在线视频 | 最近中文字幕 | 麻豆手机在线 | 成人av一级片 | 免费69视频| 激情五月激情综合网 | 免费看久久久 | 蜜臀av性久久久久蜜臀av | 天天干,狠狠干 | 69国产盗摄一区二区三区五区 | 韩国av一区 | 国产欧美在线一区 | 久久久久久久免费 | 国产情侣一区 | 香蕉视频久久 | 成人 亚洲 欧美 | 久精品在线观看 | 99久久精品国产欧美主题曲 | 精品国产一区二区三区免费 | 免费看黄在线 | 美女免费av | 韩国精品视频在线观看 | 久久久国产精品人人片99精片欧美一 | 国产综合精品一区二区三区 | 久久人91精品久久久久久不卡 | 亚洲高清久久久 | 黄色最新网址 | 国产精品mm | 黄色综合 | 91成人看片 | 日韩二区三区在线观看 | 日本韩国精品在线 | 91在线九色| 久久呀| 91精品夜夜 | 日韩免费福利 | 婷婷色中文网 | 成人午夜电影在线观看 | 天天操天天摸天天射 | 久久黄色网| 91麻豆国产福利在线观看 | 久久精品区 | 国产精品手机在线 | 久久精品免费电影 | 丁香在线视频 | 日韩色视频在线观看 | 亚州视频在线 | 欧美日韩国产高清视频 | 久久九九精品久久 | ,午夜性刺激免费看视频 | 亚洲国产日韩精品 | 国产美女精品久久久 | 91久久精品一区二区二区 | 亚洲黄色网络 | va视频在线观看 | 人人爽人人澡人人添人人人人 | 中文字幕不卡在线88 | 香蕉网站在线观看 | 国内精品久久久久久久97牛牛 | 欧美精品xx | 香蕉97视频观看在线观看 | 国产最顶级的黄色片在线免费观看 | 国产精品久久久久久久av大片 | 97成人精品| 欧美孕妇视频 | 日韩在线三区 | 午夜久久久久久久久久影院 | 国产日韩欧美综合在线 | 亚洲成a人片在线www | 国产精品毛片 | 午夜久久福利影院 | a黄色一级| 丁香一区二区 | 在线观看www91 | 亚洲永久在线 | 96看片 | 激情大尺度视频 | 亚洲狠狠操| 亚洲综合色视频 | 国内免费久久久久久久久久久 | 一二三区在线 | 精品久久亚洲 | av网站地址 | 丝袜网站在线观看 | 国产精品6999成人免费视频 | 日韩午夜视频在线观看 | 国产小视频在线播放 | 国产精品观看在线亚洲人成网 | 精品久久久久久电影 | 日日夜操| 干av在线 | 欧美日韩在线观看视频 | 天天添夜夜操 | 婷婷色在线 | 91九色pron| 久久午夜鲁丝片 | 一区二区伦理电影 | 久久精品国产精品亚洲 | 国产69精品久久久久9999apgf | 丁香激情网| 中文字幕永久在线 | 国产国产人免费人成免费视频 | 中文视频在线看 | 国产五月色婷婷六月丁香视频 | 欧美一区三区四区 | 91专区在线观看 | 欧美极品在线播放 | 国产精品99久久久久人中文网介绍 | 黄色的片子 | 日韩午夜一级片 | 最新午夜电影 | 成人国产精品 | 国产美女精品久久久 | 久久久伦理 | 黄色福利网站 | 欧美精品亚洲精品 | 免费成人结看片 | 国产精品久久久久久一区二区三区 | 成人小视频在线 | 亚洲观看黄色网 | 国产精品久久久久一区 | 久久午夜电影院 | 日韩a在线观看 | 在线播放一区二区三区 | 国产精品激情偷乱一区二区∴ | 亚洲撸撸 | 中文一区在线 | 97网| 国产91免费观看 | 国产精品久久久久久久久久久久 | 免费在线色视频 | 国产一级免费视频 | 69av久久 | 男女拍拍免费视频 | 久久综合狠狠综合久久综合88 | 中文字幕在线高清 | 日本性生活免费看 | 国产精品综合在线 | 九月婷婷人人澡人人添人人爽 | 国产精品1区2区在线观看 | 天天操天天操一操 | 精品女同一区二区三区在线观看 | 亚洲精品综合一二三区在线观看 | 国产99一区 | 伊人色综合网 | 黄色日视频 | 九九免费在线看完整版 | 精品一区二区三区四区在线 | 黄在线免费看 | 色综合天天视频在线观看 | 亚洲天天摸日日摸天天欢 | 久久久久一区二区三区 | 97色在线视频 | 国产最新视频在线观看 | 欧美做受高潮 | 色播五月激情五月 |