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

歡迎訪問 生活随笔!

生活随笔

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

python

python 控制系统音量_pygame学习笔记(4):声音控制

發布時間:2024/10/14 python 91 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 控制系统音量_pygame学习笔记(4):声音控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pygame.mixer是一個用來處理聲音的模塊,其含義為“混音器”。游戲中對聲音的處理一般包括制造聲音和播放聲音兩部分,這里僅學習了播放聲音部分。

1、pygame.mixer啟動與初始化

pygame.mixer.init():mixer的初始化。程序中,使用時,一般放在最前面的幾句代碼中:

復制代碼 代碼如下:

import pygame

pygame.init()

pygame.mixer.init()

2、播放聲音片段wav文件播放聲音片段wav文件時,pygame.mixer使用Sound對象,格式為:

復制代碼 代碼如下:

soundwav=pygame.mixer.Sound("filename.wav") #filename.wav文件名

soundwav.play()

在游戲中,往往用下面的代碼來完成:

復制代碼 代碼如下:

import pygame,sys

pygame.init()

pygame.mixer.init()

screen=pygame.display.set_mode([640,480])

pygame.time.delay(1000)#等待1秒讓mixer完成初始化

soundwav=pygame.mixer.Sound("filename.wav")

soundwav.play()

while 1:

for event in pygame.event.get():

if event.type==pygame.QUIT:

sys.exit()

3、播放mp3、wma、ogg音樂文件這里只是學習了一個mp3文件,如果非windows系統,那可以試試ogg文件。播放音樂文件主要使用pygame.mixer中的music模塊,主要方法為:

復制代碼 代碼如下:

pygame.mixer.music.load("filename.mp3")

pygame.mixer.music.play(n,start,stop)#第一個參數為播放次數,如果是-1表示循環播放,省略表示只播放1次。第二個參數和第三個參數分別表示播放的起始和結束位置。

完整的代碼為:

復制代碼 代碼如下:

import pygame,sys

pygame.init()

pygame.mixer.init()

screen=pygame.display.set_mode([640,480])

pygame.time.delay(1000)

pygame.mixer.music.load("filename.mp3")

pygame.mixer.music.play()

while 1:

for event in pygame.event.get():

if event.type==pygame.QUIT:

sys.exit()

程序在運行時,一旦開始播放音樂,就會繼續做下一件事情,也就是說,如果我們要播放兩首歌,那么

復制代碼 代碼如下:

pygame.mixer.music.load("filename1.mp3")

pygame.mixer.music.play()

pygame.mixer.music.load("filename2.mp3")

pygame.mixer.music.play()

這段代碼運行后,就會出現兩首歌同時在播放的情況。實際中,我們常常需要播放完一首,再播放另一首,這樣就需要利用pygame.mixer.music.get_busy()函數來判斷,如果函數返回值為True那么說明目前處于忙的狀態,否則返回 False。例如:

復制代碼 代碼如下:

import pygame,sys

pygame.init()

pygame.mixer.init()

screen=pygame.display.set_mode([640,480])

pygame.time.delay(1000)

pygame.mixer.music.load("filename.mp3")

pygame.mixer.music.play()

soundwav=pygame.mixer.Sound("filename.wav")

while 1:

for event in pygame.event.get():

if event.type==pygame.QUIT:

sys.exit()

if not pygame.mixer.music.get_busy():

soundwav.play()

pygame.time.delay(5000)#等待5秒讓filename.wav播放結束

sys.exit()

4、控制音量

pygame.mixer.music.set_volume()用來控制音量,取值范圍為0-1.0的浮點數。0為最小值,1為最大值。

5、制作mp3播放器中遇到的問題

python+wxpython+pygame完全可以很容易方便的做出一個mp3播放器,但是在制作中遇到兩個問題:

一是中文歌曲名的顯示,通過搜索已經解決,加上# encoding='GBK'

二是pygame在播放mp3文件時,發現并不是所有的mp3文件都有播放,常常會出現播放聲音不正確的情況,有時只是雜響。經過與python學習交流群(2)中的すeasyげ交流,すeasyげ提出位速128kbps的mp3文件可以播放,但從網上下了幾個128kbps的mp3測試后,發現播放不正常的情況依然存在。不知道哪位大牛能解決這一問題,希望能把解決方法告知一下,謝謝。

因此,如果您打算寫一個mp3的播放工具,python能做mp3播放的模塊很多,這里,我覺得可以考慮使用mp3play模塊,比較方便簡單。目前版本為mp3play 0.1.15,具體下載地址為http://pypi.python.org/pypi/mp3play/。這里簡單介紹一下其主要方法:

play(n,starms,endms):播放,第一個參數表示次數,第二、三個參數表示播放的起止位置,單位是毫秒。

stop(): 停止。

pause(), unpause(): 暫停和開始。

isplaying(): 判斷是否正在播放,如果返回為TRUE,表示正在播放歌曲。

ispaused(): 判斷是否為暫停,如果返回為TRUE,表示暫停。

seconds(): 返回mp3文件共多少秒,注意這里的單位是秒。

milliseconds(): 返回mp3文件共多少毫秒,注意這里的單位是毫秒。

mp3play首頁上給出的例子為:

復制代碼 代碼如下:

import mp3play

filename = r'C:\music.mp3'#播放c盤下的music.mp3文件

clip = mp3play.load(filename)

clip.play()

import time

time.sleep(min(30, clip.seconds()))#如果mp3文件的長度小于30少時,全部播放完,否則僅播放30秒。

clip.stop()

本文標題: pygame學習筆記(4):聲音控制

本文地址: http://www.cppcns.com/jiaoben/python/122715.html

總結

以上是生活随笔為你收集整理的python 控制系统音量_pygame学习笔记(4):声音控制的全部內容,希望文章能夠幫你解決所遇到的問題。

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