日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python没有pygame_教程丨python 做一个简单的MP3

發布時間:2023/12/10 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python没有pygame_教程丨python 做一个简单的MP3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

↑?關注 + 星標?,每天學Python新技能后臺回復【大禮包】送你Python自學大禮

來源丨速學Python

https://mp.weixin.qq.com/s/C9doSoz0uHn2VAApBuGsNg

本節將教大家如何做一個簡單的mp3,希望大家能有所收獲,寫的不足之處望大家諒解。

廢話少說,直接上代碼:

#!/usr/bin/env python# -*- coding: utf-8 -*-import pygameimport osfrom tkinter import *root = Tk()root.title('老婆專用播放器')root.geometry('800x600')pygame.init()music_path = r'C:\Users\zlcao\Music'current_play = 'R3hab - Skydrop (Radio Edit).mp3'music_name = StringVar()def play(): music_name.set(current_play) pygame.mixer.music.load(os.path.join(music_path, current_play)) pygame.mixer.music.play()Label(root, textvariable=music_name, font=('宋體', 14), justify='center', bg='#ADD8E6').place(relx=0, rely=0.1, relwidth=1, relheight=0.3)Button(root, text="播放", command=play).place(relx=0, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text="暫停", command=lambda: pygame.mixer.music.pause()).place(relx=0.2, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text="恢復", command=lambda: pygame.mixer.music.unpause()).place(relx=0.4, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text="停止", command=lambda: pygame.mixer.music.stop()).place(relx=0.6, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text="重播", command=lambda: pygame.mixer.music.rewind()).place(relx=0.8, rely=0.5, relwidth=0.2, relheight=0.1)root.mainloop()

代碼運行效果

先吐槽一下,代碼沒有粘貼出應有的效果,不知道是不是我使用的姿勢不對。

首先我們使用pygame庫來支持音頻處理,pygame是python的一個游戲庫,有興趣的童鞋可以了解一下。

pygame.init() 意思是初始化所有導入的pygame模塊

music_name = StringVar() 這句話聲明了一個StringVar對象,他配合Label, Button的textvarable屬性來實現變量更新,界面顯示字符更新的功能。

pygame.mixer.music.load(os.path.join(music_path, current_play))

加載一個音頻文件

pygame.mixer.music.play()

播放加載的音頻文件

Label(root, textvariable=music_name, font=('宋體', 14), justify='center', bg='#ADD8E6').place(relx=0, rely=0.1, relwidth=1, relheight=0.3)

加載一個Label控件,該label控件的文字受StingVar類型的變量music_name 控制,可以通過music_name.set() 來改變label顯示的文字。font=('宋體', 14) 指定label控件的字體為宋體,字體大小為14號。justify屬性用來設置label控件的對齊方式,bg 是background的縮寫,指定label控件的背景色,如果要設置字體顏色,可以使用fg(foreground),用法同bg一樣。

place是tk 的一種布局方式, tkinter共有三種布局方式,pack, grid, place

relx和rely是相對父控件的位置。0是最左邊,0.5是正中間,1是最右邊

relwidth, relheight是相對父控件的大小。例如 relwidth=0.1相當于父控件寬度的0.1倍。

lambda是匿名函數,如果一個函數不想命名又沒有復雜的功能的情況下,可以使用匿名函 數,可以讓代碼更為簡潔。如何理解lambda呢,我舉個例子。

比如func = lambda x: x+1 等同于

def func(x): return(x+1)

x是入參,x+1是函數體里的執行語句并返回結果。

有些人可能會說,這些我都懂了,我如何能豐富我的界面功能了,這個也太簡陋了

low

這里我搜集了一些給大家提供一些參考

pygame.mixer.music.load() —— 載入一個音樂文件用于播放pygame.mixer.music.play() —— 開始播放音樂流pygame.mixer.music.rewind() —— 重新開始播放音樂pygame.mixer.music.stop() —— 結束音樂播放pygame.mixer.music.pause() —— 暫停音樂播放pygame.mixer.music.unpause() —— 恢復音樂播放pygame.mixer.music.fadeout() —— 淡出的效果結束音樂播放pygame.mixer.music.set_volume() —— 設置音量pygame.mixer.music.get_volume() —— 獲取音量pygame.mixer.music.get_busy() —— 檢查是否正在播放音樂pygame.mixer.music.set_pos() —— 設置播放的位置pygame.mixer.music.get_pos() —— 獲取播放的位置pygame.mixer.music.queue() —— 將一個音樂文件放入隊列中,并排在當前播放的音樂之后pygame.mixer.music.set_endevent() —— 當播放結束時發出一個事件pygame.mixer.music.get_endevent() —— 獲取播放結束時發送的事件

大家可以在我這個程序的基礎上繼續完善和改進,可以添加上一首下一首功能,也可以添加播放列表(treeview去做),感興趣的童鞋可以加我討論,一定知無不言言無不盡。最后通過pyinstaller打包成exe就好了,具體打包方法大家可以自行探索,另外希望大家多多支持。

------end------

推薦閱讀

再見,VS Code !你好,GitHub!

這款網絡排查工具,堪稱神器!

我的天!思科前員工刪庫跑路,損失達 1600 多萬

高中生寫LOL外掛1年狂賺500萬,落網前剛買百萬保時捷...

神器DeskGo!

破解TA朋友圈“僅三天可見”

如何掌握Python,一舉拿下大廠的高薪offer呢?

推薦我的微信號


來圍觀我的朋友圈,我的經驗分享,技術更新,不定期送書,坑位有限,速速掃碼添加
備注:
開發方向_昵稱_城市,另送你10本Python電子書,

在看點這里好文分享給更多人↓↓

總結

以上是生活随笔為你收集整理的python没有pygame_教程丨python 做一个简单的MP3的全部內容,希望文章能夠幫你解決所遇到的問題。

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