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

我用 Python 寫了一款炫酷音樂(lè)播放器,想聽(tīng)啥隨便搜!

共 62860字,需瀏覽 126分鐘

 ·

2021-08-29 00:40

在下方公眾號(hào)后臺(tái)回復(fù):面試手冊(cè),可獲取杰哥匯總的 3 份面試 PDF 手冊(cè)。

前言

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

沒(méi)辦法,想聽(tīng)歌還是得靠自己解決!今天就一起用python自制一款炫酷的音樂(lè)播放器吧~

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

下面,我們開(kāi)始介紹這個(gè)音樂(lè)播放器的制作過(guò)程。

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

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

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

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

UI設(shè)計(jì)排版布局

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

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

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

關(guān)鍵字音樂(lè)列表爬蟲(chóng)

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

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

音樂(lè)播放

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

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

附加功能

  • 播放音樂(lè)時(shí),我們還需要有播放暫停和啟動(dòng)功能

  • 音量控制提高或者降低

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

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

二、實(shí)現(xiàn)步驟

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

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

def init_ui(self):
    global type
    self.setFixedSize(1025750)
    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("還沒(méi)有播放歌曲呢╰(*°▽°*)╯")
    self.label.setStyleSheet("color:white")
    self.label.setMaximumSize(31020)

    self.main_layout.addWidget(self.up_widget, 001115)

    self.main_layout.addWidget(self.left_widget, 109025)
    self.main_layout.addWidget(self.right_widget, 1259090)  # 22右側(cè)部件在第0行第3列,占8行9列
    self.main_layout.addWidget(self.down_widget, 100010115)
    self.main_layout.addWidget(self.close_widget, 011015)  # 左側(cè)部件在第0行第0列,占1行3列

    self.down_layout.addWidget(self.label, 1011)
    self.setCentralWidget(self.main_widget)  # 設(shè)置窗口主部件

    self.tabWidget = QTabWidget(self)
    self.tabWidget.setGeometry(QRect(3320716471))
    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, 0011)
    self.tabWidget.addTab(self.tab, "      搜索頁(yè)      ")

    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, 0011)
    self.tabWidget.addTab(self.tab2, "      最近播放      ")

    self.right_layout.addWidget(self.tabWidget, 3010090)

    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, 0011)
    self.close_layout.addWidget(self.left_close, 0211)
    self.close_layout.addWidget(self.left_visit, 0111)
    self.left_close.setFixedSize(1515)  # 設(shè)置關(guān)閉按鈕的大小
    self.left_visit.setFixedSize(1515)  # 設(shè)置按鈕大小
    self.left_mini.setFixedSize(1515)  # 設(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, 0222)
    self.label2 = QLabel(self)
    self.label2.setText("當(dāng)前為順序播放")
    self.label2.setStyleSheet("color:green")
    self.left_layout.addWidget(self.label2, 4021)
    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, 4221)
    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, 4322)
    self.label3 = QLabel(self)
    self.label3.setText("")
    self.label3.setStyleSheet("color:white")
    self.down_layout.addWidget(self.label3, 1311)

    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(300300, Qt.KeepAspectRatio)
    self.label5.setPixmap(pix)
    # self.label5.setMaximumSize(1,1)
    self.left_layout.addWidget(self.label5, 2028)
    self.label6 = QLabel(self)
    self.label6.setText("")
    self.label6.setStyleSheet("color:#6DDF6D")
    self.left_layout.addWidget(self.label6, 2022)

    self.label23 = QLabel(self)
    self.label23.setText("                 ")
    self.label23.setStyleSheet("color:#6DDF6D")
    self.up_layout.addWidget(self.label23, 0100120)

    self.shuru = QLineEdit("")
    self.up_layout.addWidget(self.shuru, 0120140)
    self.shuru.returnPressed.connect(self.correct)

    self.label23 = QLabel(self)
    self.label23.setText("     軟件")
    self.label23.setStyleSheet("color:#6DDF6D")
    self.up_layout.addWidget(self.label23, 0160110)

    self.label61 = QLabel(self)
    self.label61.setText("")
    self.label61.setStyleSheet("color:#6DDF6D")
    self.up_layout.addWidget(self.label61, 0200150)

    self.cb = QComboBox(self)
    self.cb.addItems(['網(wǎng)易云''酷狗',  'qq'])
    self.up_layout.addWidget(self.cb, 0180130)
    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, 015515)

    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(010000)

    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(3030))

    self.right_playconsole_layout.addWidget(self.console_button_4, 00)

    self.right_playconsole_layout.addWidget(self.console_button_1, 01)
    self.right_playconsole_layout.addWidget(self.console_button_3, 02)

    self.right_playconsole_layout.addWidget(self.console_button_2, 03)

    self.right_playconsole_layout.addWidget(self.console_button_5, 04)

    self.right_playconsole_layout.addWidget(self.console_button_6, 05)
    self.right_playconsole_layout.setAlignment(Qt.AlignCenter)  # 設(shè)置布局內(nèi)部件居中顯示
    self.down_layout.addWidget(self.right_process_bar, 0014)  # 第0行第0列,占8行3列
    # 第0行第0列,占8行3列
    self.down_layout.addWidget(self.label7, 1211)
    self.down_layout.addWidget(self.right_playconsole_widget, 1014)
    self.setWindowOpacity(0.95)  # 設(shè)置窗口透明度
    self.setAttribute(Qt.WA_TranslucentBackground)
    self.setWindowFlag(Qt.FramelessWindowHint)  # 隱藏邊框
    self.main_layout.setSpacing(0)

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

2. 關(guān)鍵字音樂(lè)列表爬蟲(chóng)

我們可以根據(jù)輸入的關(guān)鍵字和音樂(lè)來(lái)源進(jìn)行音樂(lè)爬取。這里我們需要通過(guò)多線程,將歌曲、歌手、歌曲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('開(kāi)始搜索')
      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(010):

                              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('爬取歌曲出錯(cuò)')
      self.trigger.emit(str('unfinish'))
      stop = False
      paing = False
  qmut.unlock()

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

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('貌似沒(méi)網(wǎng)了呀`(*>﹏<*)′,再試一遍吧~')
        self.listwidget.item(0).setForeground(Qt.white)

效果如下:

3. 音樂(lè)播放

關(guān)鍵字搜索音樂(lè)列表完成之后,接下來(lái)我們需要實(shí)現(xiàn)音樂(lè)播放功能。首先需要從爬取的url下載待播放的歌曲,這里還是通過(guò)多線程進(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 + '\{}.臨時(shí)文件'.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'))

音樂(lè)播放模塊:

    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('無(wú)法播放,歌曲下載錯(cuò)誤')
                downloading = False
                pass
        except:
            sleep(0.1)
            print('播放系統(tǒng)錯(cuò)誤')
            # 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(300300, Qt.KeepAspectRatio)
                    self.label5.setPixmap(pix)
                except:
                    pix_img = QPixmap(str(data + '/backdown.png'))
                    pix = pix_img.scaled(300300, Qt.KeepAspectRatio)
                    self.label5.setPixmap(pix)
                print(str(data + '\{}.臨時(shí)文件'.format(number)))
                mixer.music.load(str(data + '\{}.臨時(shí)文件'.format(number)))  # 載入音樂(lè)
                mixer.music.play()
                self.console_button_3.setIcon(icon('fa.pause', color='#F76677', font=18))
                pause = False
                try:
                    mp3 = str(data + '\{}.臨時(shí)文件'.format(number))
                    xx = load(mp3)
                    timenum = xx.info.time_secs
                    global start
                    start = True
                except:
                    print('MP3錯(cuò)誤,播放失敗')

                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
                # 播放音樂(lè)
            except:
                pass
        elif sd == 'nofinish':
            self.label.setText('下載錯(cuò)誤')
        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))

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

4. 附加功能

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

播放模式:

(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í)間函數(shù),與下面的進(jìn)度條和時(shí)間顯示有關(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)  # 播放音樂(lè)
    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)  # 播放音樂(lè)

    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('模式選擇錯(cuò)誤')
        pass

播放暫停/開(kāi)始:

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

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

三、結(jié)束語(yǔ)

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

  • 音樂(lè)本地下載保存

  • 播放本地音樂(lè)

  • 添加我喜愛(ài)的音樂(lè)功能

  • 歌詞播放

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

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

作者:Dragon少年
來(lái)源:https://blog.csdn.net/hhladminhhl/article/details/118915410

推薦閱讀

分析了汽車銷量數(shù)據(jù)下滑后,我發(fā)現(xiàn)了其中的秘密!

我用 Python 寫了一個(gè)疫苗管理系統(tǒng)!

Python 自動(dòng)化操作 Word 15000+字超強(qiáng)總結(jié),幫你解放雙手!

全網(wǎng)最全 Python 操作 Excel 教程,建議收藏!

Python 練手 "小例子" 闖關(guān)60題!

7個(gè)Python實(shí)戰(zhàn)項(xiàng)目代碼,讓你分分鐘晉級(jí)大神!

瀏覽 12
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 日韩黄片视频| 农村一级婬片A片| 在线一级片| 91九色首页| 免费黄色福利视频| 人人看人人摸人人插| 国产一区二区三区18| www.国产视频| 狠狠操在线观看| 夜色88V精品国产亚洲| 影音先锋男人| 国产和日韩中文字幕| 亚洲无码不卡| 日本黄色一级| 精品无码人妻一区二区三区| www.豆花社区成人| 国产黄色片网站| www.sesese| 中文字幕在线观看免费高清电影 | 无码免费在线观看视频| 少妇AAA级久久久无码精品片 | 久久久久久久大香蕉| 亚洲另类图片小说| 99r6热只有精品免费观看| 中文字幕免费在线看一区七区| 三级网站免费| 精品乱子伦一区二区三区免费播成| 婷婷狠狠操| 人人操人人操人人操人人操| 日韩在线视频二区| 国产三级AV在线观看| 四虎永久在线精品无码| 成人性爱AV| 亚洲操逼逼| 亚洲中文字幕在| 在桌下含她的花蒂和舌头H视频| 四川BBB搡BBB爽爽爽欧美| 中日美朝美女一级片免费看| 成人精品在线观看| 一级免费黄色片| 日本高潮视频| 丁香五月婷婷在线| 亚洲午夜在线| 91亚洲综合| 亚洲在线a| 欧美操逼小视频| 熟女人妻一区二区三区免费看| 日本高清版色视频| www.男人的天堂| 色男人色天堂| 草久在线视频| 久久久穴| 亚洲黄片大全| 成人A√| 91吴梦梦无码一区二区| 91色色影院| 在线成人视频网站大香蕉在线网站| av拍拍| 婷婷久久久| 91精品久久香蕉国产线看观看| 92丨九色丨偷拍老熟女| 91在线无精精品秘白丝| 欧美性爱xxxx| 99久久久国产| 日韩免费黄色视频| 影音先锋av在线资源| av影音先锋在线| 无码日批| 中国人妻HDbute熟睡| 尤物一区二区| A区性愛社区| 久草视频在线播放| 91激情| 欧美一区二区三区四区视频| 中文字幕第五页| 日韩成人一区| 91在线无码精品秘| 一二区无码| 8x8x黄色| 日本免费不卡| 999国产视频| 欧美日韩精品一区二区三区视频播放 | 免费一级无码婬片A片APP直播| 黑人操白人| 亚洲小说区图片区| 色婷婷激情| 99在线精品视频免费观看20| 国产娇小13videos糟蹋| 婷婷五月AV| 俺也去在线| 欧美三级美国一级| 亚洲专区在线播放| 国内精品久久久久久久| 激情伊人| 51国产黑料吃瓜在线入口| 日本成人毛片| 亚洲精品女人久久久| 性九九九九九九| 一级a性色毛片| 国产成人精品一区二区三区视频| 成人在线激情| 黄色国产网站| 人人超碰在线| 日韩精品A片| 久热re| 国产麻豆一区二区三区| 国内精品久久久久久久久久变脸| 久久久久999| 四虎综合网| 免费黄网站在线观看| 亚洲第一成人久久网站| 成人午夜啪免费视频在线观看软件 | 精品国产三级| 中文字幕日韩有码| 狠狠操综合网| 国产操b| 视频一区中文字幕| 九九九国产| 欧美日韩视频在线| 2025精品精品视频| 一本到在线观看午夜剧场| 操你啦无码日韩| 91大神免费在线观看| 国产91探花系列在线观看| 精品黄色毛片| 久久久久久久久久久久久久久久久久免费精品分类视频 | 天堂a在线8| 人人艹在线| 成人av免费观看| 免费性片| 亚洲系列中文字幕| 亚洲无码18禁| Chinese搡老女人| 亚洲高清无码在线视频| 成人免费在线| 伊人久色| 成人视频在线播放| 99中文字幕| 在线免费黄片| 安徽少妇搡bbw搡bbbb| 久久久国产精品人人片| 综合色综合| 港澳日韩黄片| 色五月婷婷婷| 九九热这里有精品| 五月婷婷激情五月| 亚洲无套内射| 久久久久无码| AV无码免费观看| 欧美成人性爱网| 黄色网页在线观看| 日韩三级| 欧美性爱高清| 日韩午夜无码| 无码电影在线播放| 东京热91| 亚洲a∨| 在线免费观看一区| 麻豆啪啪| 亚洲精品日韩中文字幕| 中文字幕的色| 最新日韩中文字幕| 日韩高清无码免费观看| 91精品婷婷国产综合久久蝌蚪| 日韩黄网站| 国产口爆在线| 超碰99在线观看| 男女激情网站| 三洞齐开Av在线免费观看| 无码精品一区二区三区在线播放| 国产欧美日韩综合精品| 91高潮久久久久久久| 中文字幕第72页| 天堂8在线| 免费操逼视频在线观看| 荫蒂添出高潮A片视频| 500部大龄熟乱4K视频| 青青草五月天色婷婷丁香| 国产麻豆精品ThePorn| 日韩激情视频在线观看| 久久人体视频| 免费看黄在线看| 中文字幕av久久爽Av| 淫揉BBB揉揉揉BBBBB| 99欧美| 国产操穴| 四川BBB操BBB| 中文字幕北条麻妃在线| 国产精品一区二区不卡| 黄色美女视频网站| 免费黄色AV| 久久成人综合网| AV观看免费| 国产精品av在线播放| 欧美综合第一页| 国产91精品看黄网站在线观看| 91工厂露脸熟女| 久久久久久国际四虎免费精品视频| 天天日天天拍| 国产精品国产精品国产专区不卡| 欧美成人网站在线观看| 少妇无码一区| av一区二区在线观看| 一区二区三区网站| 久操免费在线视频| 欧美大香蕉视频| 四川少妇搡bbbb搡bbbb| 成年片免费观看网站免费观看,亚洲+欧... | 亚洲福利女神成人福利| 亚洲色男人天堂| 三级毛片在线| 在线播放一区| 亚洲综合色婷婷| 在线观看高清无码中文字幕| 精品尤物在线| 人人看人人搂人人摸| 大香蕉av在线观看| 精品福利在线观看| 这里视频很精彩免费观看电视剧最新 | 亚洲无码偷拍| 四季AV一区二区凹凸懂色桃花 | 亚洲无码视频一区二区| 无码av在线观看| 狼友视频第二页| 欧美成人性爱影院| 尤物精品在线| 91绿帽人妻-ThePorn| 亚洲无码免费| 特黄视频在线观看| 国产黄a| 久久久久99精品成人网站| 69av视频| 精品国产一级A片黄毛网站| 污网站18禁| 久久免费视屏| 无码中文字幕在线观看| 一级操逼大片| 伊人综合影院| 国产一级a一级a免费视频| 久久福利导航| 日本成人不卡| 日韩av高清| 色婷婷影院| 亚洲精品乱码久久久久久按摩观| 色婷婷7777| 国产一区二区免费| 91蝌蚪| 婷婷深爱五月丁香网| 亚洲一线视频| 欧美疯狂做受XXXXX高潮| 搡BBBB搡BBB搡Bb| 9191久久| 中文字幕免费AV| 久久久久亚洲AV成人网人人软件 | 中日韩黄色视频| 97超碰伊人| 天干天干天夜夜爽| 欧美成人精品a| 国产精品国产三级国产AⅤ中文| 北条麻妃无码一区二区| 日本不卡一区| 人妖和人妖互交性XXXX视频 | 俄女兵一级婬片A片| 欧美黄色站| 日韩无码视频一区二区| 亚洲精品999| 在线免费看黄色| 特黄视频在线观看| 9l农村站街老熟女| 欧美一区二区三区在线观看| 在线v片| 成人日皮视频| 国产成人99久久亚洲综合精品 | 亚洲熟女一区二区| 北条麻妃无码| 国产精品18进进出出17c| 亚洲偷拍视频| 黄色二区| 激情导航| 成人做爰黄A片免费| 欧美老熟妇乱大交XXXXX| 妓女不卡| 色黄视频在线观看| 黄色一级片视频| 久久久久久国产免费A片| 91无码人妻精品1国产四虎| 九色PORNY9l原创自拍| 中文字幕永久在线5| 黄色日逼网站| 国产精品国产| 一本久久A精品一合区久久久| 日本免费黄| 国产www在线观看| 六月丁香久久| 无码人妻一区二区三区免水牛视频| 中文字幕日韩有码| 久久久精品少妇| 内射欧美| 麻豆性爱| 欧美成人三级在线播放| 无码AV在线观看| A级片黄色片| 国产内射网站| 尤物视频网址| 伊人色综合网| 国产成人一级片| 午夜成人福利视频在线观看| 大香蕉9999| 成人国产在线| 中文字幕天天在线| 美日韩免费视频| 球AV在线| 激情爱爱网站| 亚洲日韩国产AV无码无码精品| 综合视频一区| 久热福利| 东京热久久综合色五月老师| 91爱爱·com| 日韩爱爱视频| 亚洲日韩网站| 亚洲毛片在线| 黄片网址| 91精品久| 2017人人操| 日韩AV成人无码久久电影| 国产乱子伦-区二区三区四区| 日韩在线不卡| 欧美特黄一级视频| 亚洲性网| 一道本无码视频| 蜜臀久久| 国产一级免费在线观看| 黑人巨粗进入疼哭A片| 无码视频免费| 人妻无码人妻| 欧美性爱视频免费看| 天天日综合网| 毛片在线观看视频| 日韩欧美综合一区| 学生妹毛片视频| 乱伦视频网| 国产三级一区二区| 婷婷丁香激情五月天| 国产超级无码高清在线视频观看| 亚洲欧洲日韩| 性毛片| 97精品人妻一区二区三区在线| 日韩免费高清| 亚洲天堂国产| 国产在线观看免费视频| 在线免费观看成人视频| 黄色一级免费| 亚洲精品无码一区| 国产精品无码白浆高潮| 久久青草影院| 国产无遮挡A片又黄又爽小直播 | 91无码人妻精品一区二区三区四| 日韩精品视频在线免费观看| 综合激情av| 五月天久久婷婷| 日韩人妻无码网站| 中文字幕在线国产| 亚洲无码视频在线观看高清 | 尹人香蕉久久| 国产操逼免费视频| 日本韩国叼嘿片| 91精品无码一区二区| 玩弄小怮女在线观看| 人人人人人人操| 先锋资源av| 琪琪久久| 天天日天天插| 男女啪啪啪网站| 黄色性爱小说| 91成人视频免费观看| 影音先锋亚洲资源| 青春草在线视频免费观看| 色九九综合| 久久精品99国产国产精| 成人av免费在线观看| 欧美老司机| 9i看片成人免费视频| 人人色人人草| 国产三级电影在线观看| 国产黄色片在线免费观看| 成人网站免费在线观看| 婷婷另类小说| 久久午夜无码鲁丝片| 欧美精品一级| 青青草操逼视频| 日韩精品极品视频在线观看免费| 青娱乐超碰在线| 超碰九色| 国产大鸡巴| 中文字幕精品一区| av拍拍| 成人无码电影在线观看| AV草逼| 成人av中文字幕| 黄色自拍视频| 韩日无码视频| 亚洲欧美成人片| 亚洲激情综合网| 91精品国产综合久久久久久久| 亚洲成人精品在线观看| 天堂va欧美ⅴa亚洲va一夜| 日本三级无码| 三级毛片在线| 亚洲欧美成人| 翔田千里无码播放| 国产中文字幕AV| 被黑人猛躁10次高潮视频| 欧洲精品在线视频| ww国产| 亚洲中文字幕日韩精品| 日韩无码国产精品| 尤物网站在线播放| 影音先锋av在线资源站| AV无码中文| 亚洲欧美久久久久久久久久久久| 天天肏屄| 五月天婷婷无码| 天天综合视频| 日韩成人无码免费视频| 国产操逼免费看| 久久婷婷六月综合| 成人在线三级| 色五月婷婷中文字幕| 91无码人妻精品1国产四虎| 狠狠干狠狠操| 日韩91在线| 日韩操逼图| 国产精品自拍小视频| 青娱乐国产av| 丁香五月在线| 亚洲乱伦图片| 亚洲精品一区二区三区四区高清 | 三级视频在线播放| 黄网站在线播放| 免费福利在线视频| 色五月综合网| 成人黄色录像| 2025最新国产精品每日更新| 精品黑人| 天天夜夜有| 亚洲黄色影院| 少妇激情av| 国产6区| 在线看黄网站| 女人av天堂| 天天爽夜夜爽| 精品国产污污免费网站入口| 欧美一区二区三区成人| 国产又爽又黄免费网站校园里 | 阿宾MD0165麻豆沈娜娜| 青青色在线观看| 国产婬片一级A片AAA毛片AⅤ| 日韩欧美色| 影音先锋国产av| 黄色电影一区二区三区| 亚洲A片在线观看| 99re国产视频| 亚洲91黄色片| 精品乱子伦一区二区三区免费播成| 日韩中文字幕国产| 国产精品久久久久久久久久| 免费欧美A片| 日韩最新高清无码| 国产伦精品一区二区三区妓女| 中文不卡在线| 亚洲高清无码在线观看视频| 精品乱子伦一区二区三区| 黄片无码视频| 精品国产自| 夜夜爽久久精品91| 国产九九热视频| 最新国产毛片| 中文字幕日韩在线观看| 色操网| 99re视频精品| 69黄色视频| 国产精品V亚洲精品V日韩精品| 日本成人激情视频| 一级A片一毛片大全| 日韩一级成人片| 久久久精品999| 人妻中文无码| 日本天天操| 日韩在线视频第一页| 免费中文字幕日韩欧美| 成人a片在线观看| 免费A片在线看| 一级黄色视频日逼片| 天天爽天天射| 中文字幕99页| 5252a我爱haose01我愿| 广东BBW搡BBBB搡| 91三级电影| 2024无码| 国产中文字幕亚洲综合欧美| 成人中文字幕在线| 婷婷午夜精品久久久久久性色| 操逼第二页| 亚洲影音先锋| 91成人无码看片在线观看网址| 无码人妻AⅤ一区二区三区| 午夜一级性爱片| 国产精品黄色视频| 91成人久久| 91天天综合在线| 大香蕉伊人在线观看| 亚洲三级网| 欧美老熟妇BBBBB搡BBB | 911精品人妻一区二区三区A片| 无码精品黑人| 亚洲天堂人妻少妇| 免费无码一区二区三区| 俄罗斯白嫩BBwBBwBBw91| 欧美大鸡巴视频| 高清无码在线免费观看| 肏屄视频免费观看| 日本中文字幕中文翻译歌词| 三级高清无码视频| 亚洲综合婷婷| 爆乳尤物一区二区三区| 国产精品V亚洲精品V日韩精品| 久热精品在线| 亚洲中文字幕av| 丁香五月色| 污污污污污www网站免费观看| 噼里啪啦免费观看视频大全| 肏亚洲美女| 人妻字幕| 亚洲A片V一区二区三区| 不卡的AV| 狠狠干五月| 波多野结衣成人视频| 2025AV天堂网| 亚洲少妇免费| 日韩av无码中文字幕| 亚州毛多色色精品| 91精品视频在线播放| 五月天婷婷久久| 无码秘蜜桃一区二区三区| 国产成人女人在线观看| 暖暖爱视频免费| 中文字幕无码视频在线观看| 另类Av| 国产女人水真多18毛片18精品| 乱伦无码高清麻豆视频一区二区| 欧美另类激情| 日韩在线视频91| 黄色动漫在线免费观看| 男女91| 国产在线观看免费成人视频| 老司机免费视频| 成人黄色av| 色悠悠久久综合| 亚洲狼人久久久精品| 天堂成人在线视频| 免费在线观看A片| www.精品视频| 人人插人人射| 精品三级网站| 亚洲日韩一区二区三区四区| 亚洲高清无码在线观看| 久久小视频| 午夜成人视频在线观看| 欧美亚洲日韩一区二区| 先锋AV资源在线| 淫色综合网| 色婷婷在线播放| 九九九精品视频| 综合国产| 免费无码在线播放| 美女裸身18禁| 久久综合婷婷| 天天爽夜夜爽精品成人免费| 亚洲无线观看| 日日操操| 巜痴漢電車~凌脔版2| 无码免费毛片一区二区三区古代| 青青草网站在线观看| 先锋影音亚洲无码av| 国精品无码人妻一区二区三区免费| 国产青青草| 欧美性69| 综合一区二区三区| 女同久久另类99精品国产91| 成人性爱免费网站| 国产一级A片免费播放| 中文字幕韩日| 国内无码| 久久这里只有| 人人操人人撸| 农村一级婬片A片AAA毛片古装| 蜜桃AV无码一区二区三区| 国产精品1区2区3区| 精品乱子伦一区二区在线播放| 亚洲性生活| 人人操人人射| 国产无码毛片| 夜夜狠狠躁日日躁| 色天天综合| AA久久| 免费观看在线无码视频| 超碰九一| 狠狠se| 在线观看一区二区视频| 约操少妇| 大香蕉啪啪| 青娱乐亚洲领先| 超碰在线观看91| 天天操人妻| 偷拍777| 91无码秘蜜桃一区二区三区-百度| 国产激情视频网站| 在线观看三级| 国产看色免费| 国产寡妇亲子伦一区二区三区四区| 欧美日韩有码视频网址大全| 精品三级片| 激情操逼| 成人欧美大片黄18| 亚洲天堂成人网| AV无码观看| 亚洲视频一区二区三区四区娇小视频在线观看视频 | 安徽扫搡BBBB揉BBBB| 国产又大又粗又长| 2018天天干天天操| 91麻豆精品国产91久久久吃药| 久久99精品久久久久久水蜜桃 | 国产激情啪啪| 一区二区三区四区在线播放| 影音先锋国产AV| 超碰97老师| 欧美h在线观看| 91在线一区| 在线观看中文字幕一区| 激情五月婷婷网| 大鸡巴操B视频| 激情婷婷在线| 西西人体大胆ww4444图片| 亚洲国际中文字幕在线| 无码一区二区三区四季| 韩国GOGOGO高清| 99视频精品| 精品无码在线观看| 一级无码毛片| 久久蜜桃| 人人爱人人插| 欧美黄色免费看| 免费一级无码婬片A片APP直播| 午夜影音| 在线视频一区二区三区| 亚洲成人天堂| 日本十八禁网站| 亚洲无码一级片| 亚洲精品一区二区三区新线路| 亚洲精品秘一区二区三小| 欧洲第一无人区观看| 中文在线免费看视频| 亚洲国产无码在线观看| 国产精品视频在线免费观看| 久久国产乱子伦精品免费午夜...| A级免费视频| 肏逼免费视频| 豆花视频免费| 欧美国产第一页| 国产91久久婷婷一区二区| 人妻少妇偷人精品久久| 欧美性综合网| 波多野结衣AV在线观看| 秋霞欧美在线| AV资源在线免费观看| 黄A在线| 少妇做爱特级AAA| 精品三级在线观看| 久久一二三| 亚洲免费黄色片| 91精品久| 99精品视频16在线免费观看| 日韩一级片免费| 亚洲一区二区三区在线视频| 久久精品无码视频| 日韩AV一级| 色诱AV| 亚洲欧美成人在线观看| 日韩AV小电影| 日韩精品免费观看| 桃色一区| 中文字幕人成人乱码亚洲电影| 美日韩中文字幕| 久久无码高清视频| 激情网五月天| 黃色一级A片一級片| 欧美性爱中文字幕| 国产欧美日韩在线| 黄色视频网站在线观看| 国产天天操| 偷拍视频网站北条麻妃| 免费黄色大片网站| 大鸡吧操逼| 狠狠干老司机| 亚洲国产色婷婷| 国产在线拍揄自揄拍无码男男 | 国产黄网| 青娱乐AV| 最新中文字幕观看| 男人天堂无码av| 97人人操人人干| 霸道总裁雷总各种姿势白浆爱情岛论坛 | 西西人体大胆ww4444| 亚洲精品国产AV| 国产乱子伦真实精品| 亚洲香蕉视频| 成人小视频十八禁免费观看| 91丨露脸丨熟女精品| 加勒比久久88| 好好日视频| 成人在线第一页| 四虎成人电影| 91无码人妻一区二区| 欧美18禁网站| 人妻精品一区二区| A片在线免费看| 韩国毛片| 日本三级片在线| 国产激情电影| 日本一区二区三区四区在线观看| 操逼人妻| 欧美日韩一道本| 日韩无码精品一区二区三区| 先锋影音成人| 潮喷av| 搡BBBB搡BBB搡五十| 99在线免费观看视频| 成人片成人网久久蜜桃臀| 做爱视频网站18| 巨乳一区二区三区| 国产高清无码免费在线观看| 天堂资源站| 亚洲国产久久| 国产精品成人在线| 亚洲香蕉| 最近中文字幕免费mv第一季歌词強上 | 99re热在线视频| 婷婷亚洲五月色综合| 日韩中文AV| 国产精品第二页| 国产综合在线播放| 亚洲A级毛片| 91无码人妻传媒tv| 亚洲国产精品成人综合色五月| 西西www444无码大胆| 亚洲无码黄色片| 九九热视频在线| 国产伦子伦一级A片在线| 无码免费视频观看| 欧美性爱视频免费看| 久久高清免费视频| 91亚洲国产成人| 午夜无码福利视频| av在线天堂网| 亚洲日韩视频在线播放| 黄色三级毛片| 日本一区二区三区免费视频| 自慰喷水流白浆中文字幕| 欧美综合视频在线观看| 日韩欧美三级在线| 成人做爰黄A片免费看| 超碰女人| 加勒比在线| 97福利视频| 日韩中文字| 91ThePorn国产| 中文字幕超清在线观看| 特级艺体西西444WWw| 艹逼视频网站| 亚洲成人一区二区| 午夜视频99| 国产白浆一区二区三区| 青草无码| 91麻豆精品传媒| 高清国产mv在线观看| 欧美色图15p| 国产免费av在线观看| 日本成人一区二区| 亚洲中文字幕免费在线观看| 亚洲乱伦视频| 亚洲一区视频| 99re视频精品| 美女av网站| 欧美日韩成人一区二区三区| 26∪u∪成人网站| 先锋AV资源| 日韩不卡高清在线观看视频 | 人人色人人爱| 天天天天毛片| 日韩在线国产| 西西444WWW无码大胆知乎| 五月丁香婷中文| 91成人视频在线观看| 老司机在线免费视频| 一区二区三区四区| 九九视频免费观看| 久久亚洲AV| 最近日韩中文字幕中文翻译歌词| 五月婷婷色色网| 久久综合17p| 欧美三级黄色| 特级444WWW大胆高清| 少妇三区| 最新中文| 国产精品第二页| 亚洲精品无码久久| 日韩三级| 精品久草| 亚洲免费观看高清完整版在线观| 91麻豆影院| 成人黄色大片| 国产精品欧美激情| 日韩黄色一级| av大全在线观看| 久久一级片| 豆花视频一区| 91在线不卡| 亚洲精品第一页| 亚洲777| 国产wwwww| 影音先锋成人无码| 亚洲在线无码视频| 人妻少妇av中文字幕乱码牛牛 | av黄色网| 日韩人妻无码电影| 国产灬性灬淫灬欲水灬| 精品成人| 日皮视频在线观看免费| 肏屄视频在线播放| 丁香五月激情网| 91大神免费在线观看| 久9久9久9久9久9久9| 91九色91蝌蚪91成人| 亚洲精品福利| 仙踪林777777野大粗| 特级西西西88大胆无码| 中文字幕在线观看不卡| 日韩精品三区| 九九惹伊人| 欧美一级AA大片免费看视频| 91免费看| 国产AV日韩| 中文字幕AV一区| 极品少妇AV| 日韩三级AV在线观看| 国产成人片在线观看| 大黄网站在线观看| 黄片免费大全| 91av免费看| 一级成人毛片| 成人免费毛片AAAAAA片| 丁香花在线高清完整版视频| 在线观看视频你懂的| 日逼A片| 加勒比DVD手机在线播放观看视频 日韩精品一区二区三区四区蜜桃视频 | 麻豆乱伦| 在线观看免费人成视频| 久久久久久婷婷| 男女AV| 日皮视频在线观看免费| 久久大屌| 成人性爱在线观看| 国产人妻人伦精品1国产丝袜| 人人操超碰在线| 河南少妇搡BBBB搡BBBB| 啊哈嗯| 校园春色亚洲无码| 強姧伦一区二区三区在线播放 | 中文无码高清视频| 欧美特黄AAAAAAAAA片| 韩国高清无码60.70.80| 69av网站| 国产精品无码成人AV在线播放| 亚洲视频免费| 操屄视频免费观看| 日韩啪啪网站| 黄色一区二区三区| 青青草网站在线观看| 秋霞中文字幕| 操逼日韩欧美| 噜噜噜久久久| 日韩欧美爱爱| 91黄色在线视频| 黄色视频电影| 日韩欧美久久| 欧美日韩视频免费观看| 久久久久久久久久国产| 日韩国产在线观看| 在线播放a| 午夜成人无码|