国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

用Python寫了一款炫酷音樂播放器,想聽啥隨便搜!

共 26097字,需瀏覽 53分鐘

 ·

2021-08-05 04:42

本文鏈接:

https://blog.csdn.net/hhladminhhl/article/details/118915410


前言

晚上坐在電腦面前,想著一邊擼代碼,一邊聽音樂。搜了搜自己想聽的歌,奈何好多歌曲都提示需要版權(quán),無法播放!

沒辦法,想聽歌還是得靠自己解決!今天就一起用python自制一款炫酷的音樂播放器吧~

首先一起來看看最終實現(xiàn)的音樂播放器效果:


下面,我們開始介紹這個音樂播放器的制作過程。


一、核心功能設(shè)計

總體來說,我們首先需要設(shè)計UI界面,對播放器的畫面布局進(jìn)行排版設(shè)計;其次我們的這款音樂播放器的主要功能包括根據(jù)關(guān)鍵字搜索自動爬取音樂,獲取音樂列表,能進(jìn)行音樂播放。

當(dāng)然還少不了一些附加功能,例如播放方式列表循環(huán)、單曲循環(huán)、隨機(jī)播放,當(dāng)前上一首下一首播放,播放暫停開始,音量增加減少,播放歷史查看等。

拆解需求,大致可以整理出核心功能如下:

UI設(shè)計排版布局

  • 頭部主要包括關(guān)鍵字搜索和音樂來源選擇,以及窗體最小化,最大化,關(guān)閉功能

  • 中間主體包含左右兩側(cè),左側(cè)用來顯示播放音樂封面圖,右側(cè)用來進(jìn)行音樂列表顯示

  • 底部主要來顯示當(dāng)前播放音樂,播放進(jìn)度條,音量控制,上一首/下一首,暫停/開始,播放方式等附加功能


關(guān)鍵字音樂列表爬蟲

  • 通過輸入的搜索關(guān)鍵字和選擇的音樂來源,自動爬取對應(yīng)的音樂數(shù)據(jù)

  • 將爬取獲取的音樂名進(jìn)行列表顯示,顯示在中間主體搜索頁


音樂播放

  • 音樂列表中我們需要雙擊某一首歌,對爬取的歌曲封面圖和歌曲進(jìn)行下載

  • 下載成功,對音樂文件根據(jù)播放進(jìn)度條進(jìn)行播放


附加功能

  • 播放音樂時,我們還需要有播放暫停和啟動功能

  • 音量控制提高或者降低

  • 當(dāng)前播放歌曲上一首、下一首

  • 音樂列表播放方式,列表循環(huán)、單曲循環(huán)、隨機(jī)播放


二、實現(xiàn)步驟

1. UI設(shè)計排版布局

基于功能點,我們首先考慮進(jìn)行簡單的UI布局設(shè)計,這里我們使用的是pyqt5。核心設(shè)計代碼如下:

def init_ui(self):    global type    self.setFixedSize(1025, 750)    self.main_widget = QWidget()  # 創(chuàng)建窗口主部件    self.main_layout = QGridLayout()  # 創(chuàng)建主部件的網(wǎng)格布局    self.main_widget.setLayout(self.main_layout)  # 設(shè)置窗口主部件布局為網(wǎng)格布局
self.close_widget = QWidget() # 創(chuàng)建關(guān)閉側(cè)部件 self.close_widget.setObjectName('close_widget') self.close_layout = QGridLayout() # 創(chuàng)建左側(cè)部件的網(wǎng)格布局層 self.close_widget.setLayout(self.close_layout) # 設(shè)置左側(cè)部件布局為網(wǎng)格
self.left_widget = QWidget() # 創(chuàng)建左邊側(cè)部件 self.left_widget.setObjectName('left_widget') self.left_layout = QGridLayout() # 創(chuàng)建左側(cè)部件的網(wǎng)格布局層 self.left_widget.setLayout(self.left_layout) # 設(shè)置左側(cè)部件布局為網(wǎng)格
self.right_widget = QWidget() # 創(chuàng)建右側(cè)部件 self.right_widget.setObjectName('right_widget') self.right_layout = QGridLayout() self.right_widget.setLayout(self.right_layout) # 設(shè)置右側(cè)部件布局為網(wǎng)格
self.down_widget = QWidget() # 創(chuàng)建下面部件 self.down_widget.setObjectName('down_widget') self.down_layout = QGridLayout() self.down_widget.setLayout(self.down_layout) # 設(shè)置下側(cè)部件布局為網(wǎng)格
self.up_widget = QWidget() # 創(chuàng)建下面部件 self.up_widget.setObjectName('up_widget') self.up_layout = QGridLayout() self.up_widget.setLayout(self.up_layout) # 設(shè)置下側(cè)部件布局為網(wǎng)格
self.label = QLabel(self) self.label.setText("還沒有播放歌曲呢╰(*°▽°*)╯") self.label.setStyleSheet("color:white") self.label.setMaximumSize(310, 20)
self.main_layout.addWidget(self.up_widget, 0, 0, 1, 115)
self.main_layout.addWidget(self.left_widget, 1, 0, 90, 25) self.main_layout.addWidget(self.right_widget, 1, 25, 90, 90) # 22右側(cè)部件在第0行第3列,占8行9列 self.main_layout.addWidget(self.down_widget, 100, 0, 10, 115) self.main_layout.addWidget(self.close_widget, 0, 110, 1, 5) # 左側(cè)部件在第0行第0列,占1行3列
self.down_layout.addWidget(self.label, 1, 0, 1, 1) self.setCentralWidget(self.main_widget) # 設(shè)置窗口主部件
self.tabWidget = QTabWidget(self) self.tabWidget.setGeometry(QRect(33, 20, 716, 471)) self.tab = QWidget() self.tab.setObjectName("tab") self.tab_layout = QGridLayout() self.tab.setLayout(self.tab_layout) self.listwidget = QListWidget(self.tab) self.listwidget.doubleClicked.connect(lambda: self.change_func(self.listwidget)) self.listwidget.setContextMenuPolicy(Qt.CustomContextMenu) self.listwidget.customContextMenuRequested[QPoint].connect(self.myListWidgetContext) self.listwidget.setObjectName("listWidget") self.tab_layout.addWidget(self.listwidget, 0, 0, 1, 1) self.tabWidget.addTab(self.tab, " 搜索頁 ")
self.tab2 = QWidget() self.tab2.setObjectName("tab") self.tab2_layout = QGridLayout() self.tab2.setLayout(self.tab2_layout) self.listwidget2 = QListWidget(self.tab2) self.listwidget2.doubleClicked.connect(lambda: self.change_funcse(self.listwidget2)) self.listwidget2.setContextMenuPolicy(Qt.CustomContextMenu) self.listwidget2.customContextMenuRequested[QPoint].connect(self.myListWidgetContext2) self.listwidget2.setObjectName("listWidget2") self.listwidget2.setContextMenuPolicy(3) self.tab2_layout.addWidget(self.listwidget2, 0, 0, 1, 1) self.tabWidget.addTab(self.tab2, " 最近播放 ")
self.right_layout.addWidget(self.tabWidget, 3, 0, 100, 90)
self.left_close = QPushButton("") # 關(guān)閉按鈕 self.left_close.clicked.connect(self.close) self.left_visit = QPushButton("") # 空白按鈕 self.left_visit.clicked.connect(self.big) self.left_mini = QPushButton("") # 最小化按鈕 self.left_mini.clicked.connect(self.mini) self.close_layout.addWidget(self.left_mini, 0, 0, 1, 1) self.close_layout.addWidget(self.left_close, 0, 2, 1, 1) self.close_layout.addWidget(self.left_visit, 0, 1, 1, 1) self.left_close.setFixedSize(15, 15) # 設(shè)置關(guān)閉按鈕的大小 self.left_visit.setFixedSize(15, 15) # 設(shè)置按鈕大小 self.left_mini.setFixedSize(15, 15) # 設(shè)置最小化按鈕大小 self.left_close.setStyleSheet( '''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''') self.left_visit.setStyleSheet( '''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''') self.left_mini.setStyleSheet( '''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}''')

self.button_123 = QLabel("") self.left_layout.addWidget(self.button_123, 0, 2, 2, 2) self.label2 = QLabel(self) self.label2.setText("當(dāng)前為順序播放") self.label2.setStyleSheet("color:green") self.left_layout.addWidget(self.label2, 4, 0, 2, 1) self.button_1234 = QPushButton(icon('fa.download', color='#3FC89C', font=24), "") self.button_1234.clicked.connect(self.down) self.button_1234.setStyleSheet( '''QPushButton{background:#222225;border-radius:5px;}QPushButton:hover{background:#3684C8;}''') self.left_layout.addWidget(self.button_1234, 4, 2, 2, 1) self.button_1234 = QPushButton(icon('fa.heart', color='#3FC89C', font=24), "") self.button_1234.clicked.connect(self.lovesong) self.button_1234.setStyleSheet( '''QPushButton{background:#222225;border-radius:5px;}QPushButton:hover{background:#3684C8;}''') self.left_layout.addWidget(self.button_1234, 4, 3, 2, 2) self.label3 = QLabel(self) self.label3.setText("") self.label3.setStyleSheet("color:white") self.down_layout.addWidget(self.label3, 1, 3, 1, 1)
self.label7 = QLabel(self) self.label7.setText("") self.label7.setStyleSheet("color:white") self.label5 = QLabel(self) pix_img = QPixmap(str(data + '/backdown.png')) pix = pix_img.scaled(300, 300, Qt.KeepAspectRatio) self.label5.setPixmap(pix) # self.label5.setMaximumSize(1,1) self.left_layout.addWidget(self.label5, 2, 0, 2, 8) self.label6 = QLabel(self) self.label6.setText("") self.label6.setStyleSheet("color:#6DDF6D") self.left_layout.addWidget(self.label6, 2, 0, 2, 2)
self.label23 = QLabel(self) self.label23.setText(" ") self.label23.setStyleSheet("color:#6DDF6D") self.up_layout.addWidget(self.label23, 0, 100, 1, 20)
self.shuru = QLineEdit("") self.up_layout.addWidget(self.shuru, 0, 120, 1, 40) self.shuru.returnPressed.connect(self.correct)
self.label23 = QLabel(self) self.label23.setText(" 軟件") self.label23.setStyleSheet("color:#6DDF6D") self.up_layout.addWidget(self.label23, 0, 160, 1, 10)
self.label61 = QLabel(self) self.label61.setText("") self.label61.setStyleSheet("color:#6DDF6D") self.up_layout.addWidget(self.label61, 0, 200, 1, 50)
self.cb = QComboBox(self) self.cb.addItems(['網(wǎng)易云', '酷狗', 'qq']) self.up_layout.addWidget(self.cb, 0, 180, 1, 30) self.cb.currentIndexChanged[int].connect(self.print) self.button_1 = QPushButton(icon('fa.search', color='white'), "") self.button_1.clicked.connect(self.correct) self.button_1.setStyleSheet( ''' QPushButton{color:white;border-radius:5px;}QPushButton:hover{background:green;} ''') self.up_layout.addWidget(self.button_1, 0, 155, 1, 5)
self.right_process_bar = QProgressBar() # 播放進(jìn)度部件 self.right_process_bar.setValue(49) self.right_process_bar.setFixedHeight(3) # 設(shè)置進(jìn)度條高度 self.right_process_bar.setTextVisible(False) # 不顯示進(jìn)度條文字 self.right_process_bar.setRange(0, 10000)
self.right_playconsole_widget = QWidget() # 播放控制部件 self.right_playconsole_layout = QGridLayout() # 播放控制部件網(wǎng)格布局層 self.right_playconsole_widget.setLayout(self.right_playconsole_layout)
self.console_button_1 = QPushButton(icon('fa.backward', color='#3FC89C'), "") self.console_button_1.clicked.connect(self.last) self.console_button_1.setStyleSheet( '''QPushButton{background:#222225;border-radius:5px;}QPushButton:hover{background:#3684C8;}''')
self.console_button_2 = QPushButton(icon('fa.forward', color='#3FC89C'), "") self.console_button_2.clicked.connect(self.nextion) self.console_button_2.setStyleSheet( '''QPushButton{background:#222225;border-radius:5px;}QPushButton:hover{background:#3684C8;}''')
self.console_button_3 = QPushButton(icon('fa.pause', color='#3FC89C', font=18), "") self.console_button_3.clicked.connect(self.pause) self.console_button_3.setStyleSheet( '''QPushButton{background:#222225;border-radius:5px;}QPushButton:hover{background:#3684C8;}''')
self.console_button_4 = QPushButton(icon('fa.volume-down', color='#3FC89C', font=18), "") self.console_button_4.clicked.connect(self.voicedown) self.console_button_4.setStyleSheet( '''QPushButton{background:#222225;border-radius:5px;}QPushButton:hover{background:#3684C8;}''')
self.console_button_5 = QPushButton(icon('fa.volume-up', color='#3FC89C', font=18), "") self.console_button_5.clicked.connect(self.voiceup) self.console_button_5.setStyleSheet( '''QPushButton{background:#222225;border-radius:5px;}QPushButton:hover{background:#3684C8;}''')
self.console_button_6 = QPushButton(icon('fa.align-center', color='#3FC89C', font=18), "") self.console_button_6.clicked.connect(self.playmode) self.console_button_6.setStyleSheet( '''QPushButton{background:#222225;border-radius:5px;}QPushButton:hover{background:#3684C8;}''')
self.console_button_3.setIconSize(QSize(30, 30))
self.right_playconsole_layout.addWidget(self.console_button_4, 0, 0)
self.right_playconsole_layout.addWidget(self.console_button_1, 0, 1) self.right_playconsole_layout.addWidget(self.console_button_3, 0, 2)
self.right_playconsole_layout.addWidget(self.console_button_2, 0, 3)
self.right_playconsole_layout.addWidget(self.console_button_5, 0, 4)
self.right_playconsole_layout.addWidget(self.console_button_6, 0, 5) self.right_playconsole_layout.setAlignment(Qt.AlignCenter) # 設(shè)置布局內(nèi)部件居中顯示 self.down_layout.addWidget(self.right_process_bar, 0, 0, 1, 4) # 第0行第0列,占8行3列 # 第0行第0列,占8行3列 self.down_layout.addWidget(self.label7, 1, 2, 1, 1) self.down_layout.addWidget(self.right_playconsole_widget, 1, 0, 1, 4) self.setWindowOpacity(0.95) # 設(shè)置窗口透明度 self.setAttribute(Qt.WA_TranslucentBackground) self.setWindowFlag(Qt.FramelessWindowHint) # 隱藏邊框    self.main_layout.setSpacing(0)


實現(xiàn)效果如下:

2. 關(guān)鍵字音樂列表爬蟲

我們可以根據(jù)輸入的關(guān)鍵字和音樂來源進(jìn)行音樂爬取。這里我們需要通過多線程,將歌曲、歌手、歌曲url地址全都獲取。核心代碼如下:

def run(self):  qmut.lock()  try:      global paing      global stop      global lrcs      global urls      global songs      global name      global songid      global proxies      global pic      global tryed      paing = True
print('搜索軟件{}'.format(type)) print('開始搜索') name = name headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.110.430.128 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest'
} urls = [] songs = [] pic = [] lrcs = [] pages = 5 print(pages) for a in range(0, pages): if not stop:
urlss = ['http://music.9q4.cn/', 'https://defcon.cn/dmusic/','http://www.xmsj.org/', 'http://music.laomao.me/'] print (tryed) if tryed >3:
tryed = 0 url = urlss[tryed] else: url = urlss[tryed] print (urlss[tryed])
params = {'input': name, 'filter': 'name', 'type': type, 'page': a } if not stop: try: res = post(url, params, headers=headers, proxies=proxies) html = res.json()
for i in range(0, 10):
try: title = jsonpath(html, '$..title')[i] author = jsonpath(html, '$..author')[i] url1 = jsonpath(html, '$..url')[i] # 取下載網(wǎng)址 pick = jsonpath(html, '$..pic')[i] # 取歌詞 lrc = jsonpath(html, '$..lrc')[i] print(title, author) lrcs.append(lrc) urls.append(url1) pic.append(pick) songs.append(str(title) + ' - ' + str(author)) except: pass except: stop = False paing = False self.trigger.emit(str('finish')) else: self.trigger.emit(str('finish')) else: self.trigger.emit(str('clear')) pass
stop = False paing = False except: print('爬取歌曲出錯') self.trigger.emit(str('unfinish')) stop = False paing = False  qmut.unlock()

爬取代碼寫好了,我們還需要將爬取的這些音樂數(shù)據(jù)列表顯示到畫面中搜索頁面中。代碼如下:

def repite(self, name, type):    global tryed    global paing    global stop    self.listwidget.clear()    self.listwidget.addItem('搜索中')    self.listwidget.item(0).setForeground(Qt.white)    try:        if paing:            stop = True
self.listwidget.clear() self.work2 = PAThread() self.work2.start() self.work2.trigger.connect(self.seafinish) else: self.work2 = PAThread() self.work2.start() self.work2.trigger.connect(self.seafinish) except: tryed = tryed + 1 get_info('https://www.kuaidaili.com/free/inha') self.listwidget.addItem('貌似沒網(wǎng)了呀`(*>﹏<*)′,再試一遍吧~')        self.listwidget.item(0).setForeground(Qt.white)

效果如下:

3. 音樂播放

關(guān)鍵字搜索音樂列表完成之后,接下來我們需要實現(xiàn)音樂播放功能。首先需要從爬取的url下載待播放的歌曲,這里還是通過多線程進(jìn)行。核心代碼如下:

class WorkThread(QThread):    trigger = pyqtSignal(str)
def __int__(self): # 初始化函數(shù) super(WorkThread, self).__init__() # 進(jìn)度條 def cbk(self, a, b, c): '''''回調(diào)函數(shù) @a:已經(jīng)下載的數(shù)據(jù)塊 @b:數(shù)據(jù)塊的大小 @c:遠(yuǎn)程文件的大小 ''' per = 100.0 * a * b / c if per > 100: per = 100 # print ('%.2f%%' % per) self.trigger.emit(str('%.2f%%' % per))
def run(self): try: global number global path global downloading try: proxies = { 'http': 'http://124.72.109.183:8118', ' Shttp': 'http://49.85.1.79:31666'
} headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest'} try: try: try: aq = pic[num] aqq = aq.split('/')
except: pass
if type == 'kugou' and len(aqq) - 1 == 6: aqqe = str(aqq[0]) + str('//') + str(aqq[2]) + str('/') + str(aqq[3]) + str('/') + str( '400') + str('/') + str(aqq[5]) + str('/') + str(aqq[6]) print(aqqe) elif type == 'netease' and len(aqq) - 1 == 4: aqn = aq.split('?') b = '?param=500x500' aqqe = (str(aqn[0]) + str(b)) print(aqqe) else: aqqe = pic[num] req = get(aqqe)
checkfile = open(str(data + '/ls1.png'), 'w+b') for i in req.iter_content(100000): checkfile.write(i)
checkfile.close() lsfile = str(data + '/ls1.png') safile = str(data + '/back.png') draw(lsfile, safile) except: pass url1 = urls[num] print(url1) number = number + 1 path = str(data + '\{}.臨時文件'.format(number)) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.110.430.128 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest' } with get(url1, stream=True, headers=headers) as r, open(path, 'wb') as file: total_size = int(r.headers['content-length']) content_size = 0 for content in r.iter_content(chunk_size=1024): file.write(content) content_size += len(content) plan = (content_size / total_size) * 100 # print(int(plan)) develop = str(int(plan)) + str('%') self.trigger.emit(str(develop)) to = 'downloadmusic\{}.mp3'.format(songs[num]) makedirs('downloadmusic', exist_ok=True) except: pass try: copyfile(path, to) except: pass downloading = False self.trigger.emit(str('finish')) except:                self.trigger.emit(str('nofinish'))

音樂播放模塊:

    def bofang(self, num, bo):        print('嘗試進(jìn)行播放')        try:            import urllib            global pause            global songs            global music            global downloading            downloading = True            self.console_button_3.setIcon(icon('fa.pause', color='#F76677', font=18))            pause = False            try:                mixer.stop()            except:                pass            mixer.init()            try:                self.Timer = QTimer()                self.Timer.start(500)            except:                pass            try:                self.label.setText('正在尋找文件...')                self.work = WorkThread()                self.work.start()                self.work.trigger.connect(self.display)            except:                print('無法播放,歌曲下載錯誤')                downloading = False                pass        except:            sleep(0.1)            print('播放系統(tǒng)錯誤')            # self.next()            pass
def display(self, sd): global pause global songed global urled global lrcd global timenum if sd == 'finish': try: if bo == 'boing': self.label.setText(songs[num]) elif bo == 'boed': self.label.setText(songed[num]) elif bo == 'love': self.label.setText(loves[num]) try: pix_img = QPixmap(str(data + '/back.png')) pix = pix_img.scaled(300, 300, Qt.KeepAspectRatio) self.label5.setPixmap(pix) except: pix_img = QPixmap(str(data + '/backdown.png')) pix = pix_img.scaled(300, 300, Qt.KeepAspectRatio) self.label5.setPixmap(pix) print(str(data + '\{}.臨時文件'.format(number))) mixer.music.load(str(data + '\{}.臨時文件'.format(number))) # 載入音樂 mixer.music.play() self.console_button_3.setIcon(icon('fa.pause', color='#F76677', font=18)) pause = False try: mp3 = str(data + '\{}.臨時文件'.format(number)) xx = load(mp3) timenum = xx.info.time_secs global start start = True except: print('MP3錯誤,播放失敗')
if bo == 'boing': songed.append(songs[num]) urled.append(urls[num]) picd.append(pic[num]) lrcd.append(lrcs[num]) r = 0 self.listwidget2.clear() for i in songed: # self.listwidget.addItem(i)#將文件名添加到listWidget
self.listwidget2.addItem(i) self.listwidget2.item(r).setForeground(Qt.white) r = r + 1 else: pass # 播放音樂 except: pass elif sd == 'nofinish': self.label.setText('下載錯誤') elif sd == 'lrcfinish': r = 0 for i in lrct: if not i == '\r': r = r + 1 else: pass elif sd == 'lrcnofinish': pass else:            self.label.setText('加速下載中,已完成{}'.format(sd))


至此,我們的音樂播放器已經(jīng)可以正常播放音樂了。

4. 附加功能

主要功能已經(jīng)完成了,下面我們還可以添加一些附加功能,例如播放方式列表循環(huán)、單曲循環(huán)、隨機(jī)播放,當(dāng)前上一首下一首播放,播放暫停開始,音量增加減少等等。

播放模式:

(1)隨機(jī)播放:

def shui(self):    global num    global songs    if bo == 'boing':        q = int(len(songs) - 1)        num = int(randint(1, q))    elif bo == 'love':        q = int(len(loves) - 1)        num = int(randint(1, q))    else:        q = int(len(songed) - 1)        num = int(randint(0, q))
try: print('隨機(jī)播放下一首') mixer.init() self.Timer = QTimer() self.Timer.start(500) # self.Timer.timeout.connect(self.timercontorl)#時間函數(shù),與下面的進(jìn)度條和時間顯示有關(guān) if bo == 'boing': self.label.setText(songs[num]) elif bo == 'love': self.label.setText(loves[num]) else: self.label.setText(songed[num]) self.bofang(num, bo) # 播放音樂 except:        pass

(2) 上一首、下一首:

def last(self):    global num    global songs    if num == 0:        print('冇')        num = len(songs) - 1    else:        num = num - 1    try:        self.bofang(num)        self.label.setText(songs[num])    except:        pass
#下一首def next(self): print ('nexting') global num global songs if num == len(songs) - 1: print('冇') num = 0 else: num = num + 1 try: self.label.setText(songs[num]) self.bofang(num) except: print ('next error')        pass

(3)單曲循環(huán):

def always(self):    try:        if bo == 'boing':            self.label.setText(songs[num])        else:            self.label.setText(songed[num])        self.bofang(num, bo)  # 播放音樂
except:        pass

(4) 播放模式選擇:

def playmode(self):    global play    try:        if play == 'shun':            play = 'shui'            print('切換到隨機(jī)播放')            self.label2.setText("當(dāng)前為隨機(jī)播放")            try:                self.console_button_6.setIcon(icon('fa.random', color='#3FC89C', font=18))                print('done')            except:                print('none')                pass            # self.left_shui.setText('切換為單曲循環(huán)')        elif play == 'shui':            play = 'always'            print('切換到單曲循環(huán)')            self.label2.setText("當(dāng)前為單曲循環(huán)")            try:                self.console_button_6.setIcon(icon('fa.retweet', color='#3FC89C', font=18))                print('done')            except:                print('none')
# self.left_shui.setText('切換為順序播放') elif play == 'always': play = 'shun' print('切換到順序播放') self.label2.setText("當(dāng)前為順序播放") try: self.console_button_6.setIcon(icon('fa.align-center', color='#3FC89C', font=18)) print('done') except: print('none')
# self.left_shui.setText('切換為隨機(jī)播放') except: print('模式選擇錯誤')        pass

播放暫停/開始:

def pause(self):    global pause    if pause:        try:            mixer.music.unpause()        except:            pass        self.console_button_3.setIcon(icon('fa.pause', color='#3FC89C', font=18))        pause = False    else:        try:            mixer.music.pause()        except:            pass        self.console_button_3.setIcon(icon('fa.play', color='#F76677', font=18))        pause = True

音量提高/降低:

def voiceup(self):    try:        print('音量加大')        global voice        voice += 0.1        if voice > 1:            voice = 1        mixer.music.set_volume(voice)        k = Decimal(voice).quantize(Decimal('0.00'))        self.label3.setText('音量:{}'.format(str(k * 100) + '%'))    except:        pass
def voicedown(self): try: print('音量減少') global voice voice -= 0.1 if voice < 0: voice = 0 mixer.music.set_volume(voice) k = Decimal(voice).quantize(Decimal('0.00')) self.label3.setText('音量:{}'.format(str(k * 100) + '%')) except:        pass

至此,這款音樂播放器就基本完成啦~ 一起來看看效果吧!


三、結(jié)束語

當(dāng)然這款音樂播放器還有待完善的功能尚未完成:

  • 音樂本地下載保存

  • 播放本地音樂

  • 添加我喜愛的音樂功能

  • 歌詞播放

  • 音樂進(jìn)度跳播

后面有時間這些功能也會繼續(xù)完善下!今天我們就到這里,明天繼續(xù)努力!


- EOF -

  推薦閱讀:


點擊關(guān)注【python之禪】,提升Python技能
??????

瀏覽 60
點贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 欧美伊人网在线观看| 爱搞视频| 欧美aaaaaa| 国产成人精品视频| 91视频一区二区三区| 国产成人精品123区免费视频| 永久精品| 亚洲偷拍视频| 337P大胆粉嫩银噜噜噜| 91av成人| 天天爱天天爽| 在线www| 丝袜天堂| 综合色国产精品欧美在线观看| 亚洲无码高清视频在线观看| 毛片在线观看视频| 精品交换一区二区三区无码| 美少妇AV| 中文字幕成人| 欧美自拍偷拍| 中文字幕一区二区6页| 蜜臀av在线观看| 亚欧洲精品在线视频| 国产精品久久久久无码AV| 欧美老妇XX| 91丨九色丨蝌蚪丨肥女| 91网站18| AAA黄片| 高清无码免费观看| 国产成人av网站| 热久久9| 中文字幕在线播放视频| 久久成人影音| 久草在线| 国产精品TV| 九九亚洲| 天堂资源在线观看| 91亚洲国产成人久久精品网站| 苍井空一区二区三区四区| 极品另类| 99在线观看精品视频| 福利精品| 欧美色视| 伊人毛片| 安徽妇女BBBWBBBwm| 黄色成人视频在线免费观看| 中文字幕11页| 国产精品tv| 久久超碰精品| 天天插天天日| 国产操b视频| 性爱黄色视频| 欧美人妻无码| 成人免费在线电影| 国产在线97| 天天日AV| 国产精品久久在线| AV无码一区| 一本色道久久综合亚洲怎么玩| 在线观看成人三级片| 99久久婷婷国产综合精品电影| 青草视频在线免费观看| 99久久久精品| 久操久| 四虎www| 91黄网站在线观看| 亚洲免费在线观看视频| 日韩啪啪视频| 中文字幕日韩人妻在线| 欧美精品久久久久| 靠逼国产| 国产精品探花熟女AV| 亚洲去干网| 午夜视频99| 在线观看视频日韩| 亚洲区综合| 91精品酒店视频| 在线国产黄色| 天天色天天干天天| 天天干天天日蜜臀色欲av| 久久久久久久久久久久久久久久久久免费精品分类视频 | 一级黄色网| 欧美在线黄片| 高清AV在线| 国内精品卡一卡二卡三| 91在线无码精品入口电车| 在线观看一区二区视频| 成人A片在线播放| 中文字字幕中文字幕乱码| 欧美亚洲综合手机在线| 午夜乱伦| 国产黄色视频免费| 91探花视频在线观看| 91www| 噜噜噜av| 精品成人无码一区二区三区| 亚洲另类av| 天天插综合| 内射视频免费看| 国产精品一区二区AV日韩在线| 成人三级片视频| 亚洲美女网站| 特黄特色一级特黄大片| 69福利社| 大香蕉久久伊人| 呦小性Free小U女HD| 3d动漫精品一区二区三区在线观看| 久久肏屄| 日韩操逼电影| 中文字幕在线视频免费观看| 欧美亚洲中文| 黄色小网站在线观看| 日韩黄视频| 中文字幕黄色片| 91亚洲免费视频| 午夜性福利视频| 人操人操人操| 国产精品视频在线免费观看| 草草浮力院| 少妇4p| 色五月亚洲| 中文字幕在线无码观看| 息子交尾一区二区三区| 亚洲砖区区免费| 日本日韩欧美| 一级无码毛片| 韩国精品久久久| 国产精品外围| 亚洲三级无码在线观看| 无码人妻AⅤ一区二区三区| 91精品婷婷国产综合| 一级a免一级a做片免费| 青娱乐91视频| 免费看18禁| 97人人爽人人爽人人人| 日本中文字幕无码| 午夜性爱福利| 成人手机AV| 午夜神马51| 国产91丝袜在线播放| 免费看毛片的网站| 99久久久精品| 国产在线一区二区三区四区| 欧美插菊花综合网| 无码专区中文字幕| 噜噜噜色| 特級西西444WWw高清大膽| 久久婷婷六月综合| 亚洲AV成人精品日韩在线播放| 久久九九热| 97国产高清| 日韩午夜AV| 婷婷五月天av| 伊人久久香蕉网| 日本内射在线播放| 99热在线观看免费| www.国产精品| 香蕉成人网| 日韩无任何视频在线观看| 中午字幕在线观看| 91视频在线观看免费大全| 天天操比| 久操福利视频| 91国产爽黄在线| 一区二区三区成人| 操干视频| 亚洲一区高清无码| 成人图片小说| 97精品人人妻人人| 中国熟妇XXXX18| 久草资源| 少妇搡BBBB搡BBB搡毛片| 国产乱叫456在线| 最新日韩在线| 国产AV无码影院| 无码人妻AV一区| 日韩人妻无码电影| 韩国无码片| 乱伦内射| 午夜性爱网| 人人澡人人爽人人精品| 成人精品免费| 免费无码视频一区二区| 又爽又黄免费网站97双女| 国产精品无码永久免费不卡| 一区二区久久| 亚洲欧洲在线播放| 九久热| 老司机一区二区三区| 青娱乐成人电影| 奇米无码| 欧洲亚洲视频| 国产www在线观看| 天堂资源在线| 淫荡97| 人妻体内射精| 激情五月伊人| 黄片99| www.色五月| 亚洲女人被黑人巨大的原因| 天天色伊人| 操逼三级片| 人人cao| 综合色婷婷一区二区亚洲欧美国产| 日韩超碰在线| av黄色| 亚洲AV色香蕉一区二区三区| 色欲AV秘无码一区二区三区| 黄片视频免费播放| 精品国产一区二区三区久久久蜜月| 久热国产视频| 特黄特色免费大片| 三级成人AV| 亚洲精品视频免费在线观看| 暖暖在线视频| 国产激情小视频| 欧美日韩国产不卡视频| 久久九九热| 麻豆精品在线观看| 亚洲AV无码成人精品区欧洲| 国产麻豆剧传媒精品国产AV| 欧美日韩四区| 香蕉视频日韩| 在线观看无码av| 婷婷久| 免费高清无码| 国产suv精品一区二区6精华液| 99精品视频国产| 日韩一卡二卡| www.骚逼| 亚洲一级av无码毛片精品| 蜜桃Av噜噜| 午夜福利视频91| 日本无码专区| 午夜性爽视频男人的天堂| 日韩激情视频在线观看| 久操久| 中文字幕+乱码+中文字幕在线| 牛牛在线视频| 亚洲成人在线视频观看| 天堂资源站| 午夜福利免费| 亚州成熟少妇视频在线观看| 成人av影院| 亚洲AV无码蜜桃| 美日韩免费视频| 夜夜骚av一区二区三区| 98无码人妻精品一区二区三区| 欧美性天天| 日本五十路熟女视频| 日日天天| 吴梦梦一区二区在线观看| 国产91探花精品一区二区| 国产精品日韩无码| 成人精品在线观看| 444444在线观看免费高清电视剧木瓜一 | 日韩无码av电影| 97视频在线观看免费| 91在线亚洲| 亚洲精品久久久久毛片A级牛奶| 91大香蕉伊人| 五月婷婷亚洲| 亚洲AVA| 高潮毛片| 天天操天天撸| 天天色天天| 色优久久| 精品一区二区三区在线观看| 狠狠撸在线| 成人午夜视频精品一区| 天堂a√在线8| 99久久99久久精品免费看蜜桃| 午夜无码鲁丝午夜免费| 操逼网址大全| 色呦呦一区二区三区| 欧美操逼网| 亚洲视频观看| 99热在线观看免费| 成人二区| 91大神在线免费观看| 婷色五月天| 亚洲日韩一区二区| 日本一区二区三区视频在线观看| 国产精品porn| 国产在线激情视频| 精品乱子伦一区二区在线播放| 66久久| 江苏妇搡BBBB搡BBBB小说 | jizz丝袜| 一区二区网站| 亚洲精品97久久| 日韩成人av在线| 国产成人精品一区二区三区| 男女操逼视频网站免费| 亚洲精品国产精品国自产网站| 国产婷婷色一区二区在线观看| 免费AV成人| 啊啊啊啊啊靠逼| 伊人久久电影| 国产人成视频免费观看| 欧美亚洲日韩一区二区| 亚洲综合免费观看高清完整版| 无套进入无套内谢| 精品码产区一区二亚洲国产| 波多野结衣无码AV在线| 黄色电影天堂网站| 午夜AV在线免费观看| 国产视频中文字幕| 影音先锋久久久久AV综合网成人 | 精品乱子伦一区二区三区| 丁香激情视频| 亚洲精品女人久久久| 国产乱国产乱老熟300部视频| 五月丁香婷婷激情综合| 中文无码第一页| 南京搡BBBB搡BBBB| 久草综合网| 97在线观看免费视频| 欧美特级毛片| 一级特黄妇女高潮AA片免费播放| 九九色视频| 日韩一级免费观看| 人人上人人干| 成人网一区二区| 97人妻人人澡人人爽人人| 成人黄片网站| 91国啪| 欧美天堂在线观看| 欧美一区三区视频z| 人妻天天操| 免费黄色AV| 亚洲日韩字幕| 无码啪啪啪| 国产一级A片在线观看| 亚洲一区二区三区视频| 午夜黄片| 91亚洲精品国偷拍自产在线观看| 国产高清视频在线观看| 四虎最新地址| 亚洲精品成a人在线观看| 成人欧美一区二区三区白人| 你懂的网站在线观看| 91av在线播放| 97人人干人人| 亚洲天天操| 男女黄色免费网站| 爆操91| 欧美黄片无码| 日本综合久久| 久久久久久99| 欧美成人视屏| 午夜黄色操逼视频| 牛牛精品一区二区| mm131亚洲国产精品久久| 日韩激情在线观看| 97在线观看视频| 国产精品美女在线观看| 成人视频在线播放| 搡BBB搡BBBB搡BBBB'| 99视频在线观看免费| 东北骚妇大战黑人视频| 精品成人在线| 影音先锋色资源站| 色天堂网站| 99精品一区二区三区| 亚洲你懂的| 国产福利美女网站| av无码一区| 思思精品视频| 中文字幕亚洲区| 蜜桃黄色视频| 黄色成人网站免费在线观看| 亚洲AV秘无码一区在线| 欧美插穴| 91白丝喷水自慰网站| 国产区精品| 草久热| ww国产| 成人A片免费在线观看| 国产美女精品| 风间由美大荫蒂无码AV| 精品二区| 亚洲国产成人在线视频| 亚洲一区无码| 国产AV无| 欧美3区| 久久久久亚洲AV无码麻豆| 偷拍九九热| 日韩中文字幕在线观看视频| 日韩性网| 日韩高清毛片| 五月婷婷视频在线观看| 国产精品一二区| 婷婷五月天电影网| 日本精品人妻无码77777| 日韩欧美在线中文字幕| 亚洲日本黄色网址| 欧美性BBB槡BBB槡BBB| 黄色视频日韩| 伊人视频在线观看| 特级黄色A片| 亚洲一区二区在线免费观看| 一区无码高清| 国产精品视频久久| 午夜啪啪视频| 欧美视频综合| 插插网站| 西西人体444www| 亚洲狠狠操| 久久8| 北条麻妃无码在线| AV手机在线| 自拍一区在线观看| 一区二区三区高清| 大香蕉伊人色| 91丨人妻丨国产丨丝袜| 日本高清视频免费观看| 国产精品久久久久久久久A| 亚洲av男人天堂| 玖玖国产精品| 国产高潮视频| 亚洲欧美不卡| 手机毛片在线播放| 中文在线字幕高清电视剧| 强行征服邻居人妻HD高清日本| 国产福利av| 91AV免费在线观看| 豆花成人在线| 中文字幕在线观| 国产小黄片在线| 日本一级做a爱片| 中文字幕+乱码+中文字幕电视剧| 欧美性生活视频| 九九热在线观看| a无码视频在线观看| 午夜AV大片| 九九操逼| 爱爱视频免费网站| 欧美三级在线播放| 毛片毛片毛片毛片毛片| 粉嫩99精品99久久久久久特污兔 | 欧美特级毛片| 色婷婷Av| 99在线精品视频观看| 97日韩天堂| 中文字幕五月久久| 欧美精品成人网站| 91福利在线观看| 大黄网站在线观看| 51福利导航| 另类AV| 最新国产视频| 俺也去网av| 欧美成人综合| 久久77777| 波多野结衣无码AV专区| 九一精品| 91农村站街老熟女露脸| 国产精品高清网站| 蜜臀在线视频| 天天日天天添| 黄A在线| 欧洲黑种人日P视频| 91成人精品一区二区| 最近中文字幕在线观看| 国产精品天天AVJ精麻传媒| 四季AV综合网站| 美女一级A片| 日韩在线观看网站| 一区二区色| 国产成人精品免费看视频| 欧美老妇日韩| 激情五月丁香婷婷| 西西444| 91人妻无码精品| 小骚逼操死你| 依人综合网| 国产福利电影在线| 国产激倩都市一区二区三区欧美| a在线观看视频| 91精品国产成人做爰观看奶头 | 你懂得视频| av久| 久久久噜噜噜久久中文字幕色伊伊| 夜夜操夜夜| 国产特级毛片AAAAAA| 日韩天天干| 黄色网页在线免费观看| 综合AV在线| 久草黄色电影| 97久久久| www.97超碰| 毛片A片免费看| 日韩国产欧美精品一区| 自拍偷拍成人视频| 久久狼人| 97精品人妻一区二区三区香蕉农| 黄色激情网站| 亚洲高清av| 国产又爽又黄免费网站在| 波多野结衣99| 97人人艹| 国产91精品看黄网站在线观看| 日韩免费不卡| 日韩V欧美| 亚洲综合网站| 日韩欧美高清第一期| 婷婷欧美日韩| 九九伊人大香蕉| 日本操逼网| 黄片免费视频在线观看| 日韩性爱小说| 91色人妻| Al激情欧美| 日韩一区无码| 成人一卡二卡| 成人黄色录像| 一道本视频在线免费观看| www.啪啪| 黄片视频在线免费观看| 国产精品久久久久久久久久久久久久久 | 国产肏屄视频| 日韩AV一二三| 天堂va欧美ⅴa亚洲va一夜| 青青草综合| 黄片网站免费| 亚洲精品第一页| 人人做人人做人人做,人人做全句下一 | 国家一级A片| 欧美狠狠| 日韩av毛片| 久久一二三四| 日韩1234区| 狠狠躁婷婷天天爽综合| jizzjizz国产| 黄片在线免费观看视频| 中文字幕在线中文| 草逼综合网| 欧美熟女性爱视频| 天天操天天干天天日| 国产高清免费| 国产91精品久久久天天| 日韩在线成人中文字幕亚洲| 亚洲欧美婷婷五月色综合| 黄色毛片网站| 成人性爱视频在线观看| 91人妻最真实刺激绿帽| 另类老妇性BBwBBw图片| 午夜无码福利视频| 国产欧美在线综合| 插插视频| 西西4444www大胆无| 久久99久久99| 欧美激情精品| 久久久偷拍视频| 草久精品| 日韩av在线免费观看| 国产精品V| 九色PORN视频成人蝌蚪自拍| 日逼黄色视频| 三级日韩视频| 欧美视频在线免费| 一区二区精品| 国产十八岁在线观看| 91欧美精品| 熟女人妻ThePorn| 伊人大香蕉网站| 51亚洲精品| 激情一一区二区三区| 足浴小少妇-88AX| 亚洲视频免费完整版在线播放| 国产女主播在线| 探花极品无套大学生| 成人动漫免费观看| 亚洲AV无码成人网站国产网站 | 欧美拍拍| 精品黄色视频| 亚洲午夜激情| 91丨豆花丨国产极品| 久久久久久久久久久久久自慰小片| 亚洲第一福利视频| 亚洲AV男人天堂| 日韩欧美123| 在线观看操逼视频| 午夜人妻AV| 国产精品高清网站| 亚洲欧洲在线播放| 色999在线播放视频| 一本在线| 国产又爽又黄免费网站校园里| www.蜜桃视频| 69av在线视频| 熟女人妻在线观看| 欧美成人电影在线观看| A色片| 人人操人人看人人干| 三级片日本在线| 日韩做爱视频| 免费看一级无码成人片| 国产高清一区二区三区| 精品无码免费看专区| 久久午夜一级A片| 丰滿人妻-区二区三区| 亚洲一区视频在线| 午夜亚洲AV永久无码精品麻豆| www.大吊视频| 97一区二区| 午夜福利片| 三级片无码视频| 牛牛影视一区二区| 青草碰| 一级av| 狠狠干狠狠草| 国产www在线观看| 无码AV电影| 懂色av蜜臀av粉嫩av分享| 丝袜一区二区三区| 中文字幕成人网站| 天天搞天天色| 中文字幕在线观看1| 性色网站| 激情网页| 免费在线黄色电影| 亚洲欧美在线播放| 午夜福利资源| 婷婷综合五月天| 午夜福利影片| 欧洲精品视频在线观看| 中文字幕高清无码在线| 又黄又爽视频| 超碰成人欧美| 国产av小电影| 国产无码做爱视频| 国产女人高潮的AV毛片| 欧美在线日韩在线| 亚洲一级二级片| 成人区色情综合小说| 波多野吉衣视频| 2025精品精品视频| 91视频在线观看| 大香蕉伊人久久| 少妇搡BBBB搡BBBB毛多多| 97久久久| 欧美日韩高清在线| 一区二区三区无码在线| 欧美三级精品| 亭亭五月丁香| 一级黄色片在线观看| 免费乱伦视频| www四虎com| 亚洲黄色成人| 久久久久蜜桃| 波多无码在线| AV网站在线免费观看| 91激情网| 久久久久久久久久成人永久免费视频 | 免费性爱视频网站| 黄片大全在线观看| 亚洲成人无码电影| 河南少妇搡BBBB搡BBBB| 天天撸天天操| 99精品视频在线观看免费| 亚洲午夜福利电影| 成人做爰黄A片免费看直播室动漫 中文字幕一区二区三区四虎在线 欧美熟妇精品一级A片视色 | 在线无码视频| 日韩本色一区| 亚洲小说图片AV在线| 亚洲丝袜不卡| 91亚洲精品久久久久蜜桃| 男女操逼免费观看| 安徽少妇搡bbw搡bbbb| 久久99精品久久久久婷婷| 搡BBBB搡BBB搡五十粉嫩| 久久成人A片| 夜夜狠狠躁日日| 亚洲伊人在线| 操15p| 欧美日韩岛国| 色99在线| 中文字幕免费毛片| 97午夜福利视频| 风间由美大荫蒂无码AV| 日韩中文字幕视频在线观看| 性久久久久久久久久| 爱草在线| 久久久久97| 在线观看中文字幕AV| 国产精品不卡在线观看| 理论片91| 国产熟妇毛多久久久久一区| 伊人福利导航| 成人激情五月天| 黑人无码在线| 蜜臀久久99精品久久久电影| 亚洲中文字幕一区| 国内毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 丁香五月激情网| 中文国产| 中文字幕乱码亚洲无线码在线日噜噜 | 午夜福利2025| 国产剧情自拍| 日韩中文字幕区| 亚洲AV无码黑人专区| h视频免费看| 五月激情六月婷婷| 日韩免费小视频| 亚洲一区二区AV| 国产五月婷婷| 中文字幕一区二区三区四区在线视频| 精东影业秘国产传媒| 国产电影一区二区三区| 91香蕉视频18| 久久电影五月天| 国产人妻人伦精品一区| 国产一级黄色毛片| 国产乱色精品成人免费视频| 日韩三级片在线播放| 丁香花激情网| 欧美第一色| 在线看国产| 久久大| 免费av大全| 黄色在线| 人妻77777| 尤物av在线| 蝌蚪窝在线视频观看| 久草视频在线免费看| 精品人妻一区二区三区阅读全文| 牛牛精品一区二区| 日韩国无码| 亚洲色欧美| 中文无码在线播放| 又a又黄高清无码视频| 熟女少妇网站| 有免费的欧美操逼视频吗| 91在线无码精品秘入口电车| 黄页av| 久久久精品午夜人成欧洲亚洲韩国| 日韩精品久久久久久久酒店| 少妇搡BBBB搡BBB搡视频一级| 国内操逼| 少妇被躁到高潮无码| 国产51视频| 国产视频精品一区二区三区| 久久国产亚洲| 中文无码第一页| 可以免费看的av| 日韩成人影片| 亚洲成人精品少妇| 日韩和的一区二区| 第四色视频| 精品动漫3D一区二区三区免费版| 欧美性性生交XXXXX无码 | 国产日韩欧美一区二区| 伊人久久大香线蕉av一区| 大香蕉人妻| 中国免费视频高清观看| 97精产国品久久蜜桃臀| 成av人片一区二区三区久久| 在线伊人| 亚洲免费三级| 五月激情综合网| 欧美三级长视频| 99久99| 国产1级a毛a毛1级a毛1级| 伊人综合大香蕉| 性爱福利视频| 美女做爱网站| 大色欧美综合| 日韩一级在线视频| 天堂资源站| 久久午夜一级A片| 久久国产成人| 五月婷婷综合网| 亚洲AV无码成人网站国产网站| av啊啊| 色婷婷久综合久久一本国产AV| www四虎| 日本精品一区二区三区四区的功能| 日韩三级电影| 精品无码在线观看视频| 国产一区二区三区四区在线观看| 无码颜射| 国产精品无码AV| 久热伊人| 天堂网免费视频| 亚洲无码三级视频| 午夜福利视频91| 成人免费黄色| 91啪啪| 97超碰色| a片在线观看视频| 92久久| 伊人久久大香| 国产麻豆电影在线观看| 亚洲黑人av| 欧美成人自拍视频| 国产婷婷色一区二区在线观看| 伊人网在线观看| 91人妻一区二区三区无不码超满| 91久久无码一区人妻A片蜜桃| 精品无码久久久| 激情五月丁香婷婷| 成人视频123| 色播网址| 国产欧美在线看| 久久性爱网| 天堂在线最新资源| 国产在线接入| 久久久久久91| 婷婷丁香五月激情| 一区二区三区免费| 无码人妻丰满熟妇区17水蜜桃| 久热九九| 午夜高清| 亚洲字幕| 久久久偷拍视频| 中文字幕无码网站| 香蕉91视频| 国产中文字幕在线观看| 国产精品毛片VA一区二区三区| 人人干天天操| 自拍偷拍成人视频| 免费黄色网址啊不卡| 久久久老熟女一区二区三区91| 欧美黄色片网站| 99久久久久久久| 999reav| 天天天做夜夜夜爽无码| 人人操人人骑| 永久免费黄色| 成人黄色性视频| 免费视频在线观看一区| 99精品视频免费看| 天天干天天做| 黄色一级片免费在线观看| 国产成人精品无码区在线| 欧美日韩操逼视频| 国产在线不卡年轻点的| 自慰一区二区| 亚洲成人无码一区| 波多野结衣黄色视频| 青草香蕉视频| 成人理伦A级A片在线论坛| 农村乱子伦毛片国产乱| 亚洲欧美美国产| 91社区成人影院| 色爽AV| www.日韩| 亚洲视频在线观| 中文字幕高清无码在线观看| 日本一区二区三区免费视频| 亚洲精品三级在线观看| 亚洲伊人成人| 亚洲黄色在线视频| 中文免费高清在线观看视频| 成年人黄色在线观看| 插插插视频| 欧美一级a| 美女高潮网站| 91麻豆精品国产| 日韩第一区| 男女草比视频| 日本翔田千里奶水| 人人操人人色| 亚洲中文无码AV在线| 怡红院欧美| 亚洲AⅤ| 亚洲区一区二| 亚洲性爱一区二区| 99热免费| 国产亚洲无码激情前后夹击| 久久综合伊人| 欧美一区| 激情小说在线视频| 国产午夜福利在线| 久久毛片人妻| 中文字幕12页| 思思热99| 精品无码久久| 特色毛片| 成年人黄色网址| 日韩AV无码专区亚洲AV紧身裤| 51AV在线| 狠狠撸在线| 午夜无码久久| 色欲一区二区| 欧美成人A片| 红桃91人妻爽人妻爽| 99无码国产成人精品| 国产va在线观看| 伊人网站视频在线| 久久大鸡巴| 在线免费观看黄色| 996精品视频| 国产成人av网站| 亚洲国产成人精品午夜| 撒尿BBw搡BBwBBw| 精品秘无码一区二区三区老师| 91亚洲国产成人精品一区二区三|