最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pygame學(xué)習(xí)筆記(4):聲音控制

 更新時間:2015年04月15日 09:26:44   投稿:junjie  
這篇文章主要介紹了pygame學(xué)習(xí)筆記(4):聲音控制,本文講解了pygame.mixer啟動與初始化、播放聲音片段wav文件、播放mp3、wma、ogg音樂文件、控制音量、制作mp3播放器中遇到的問題等內(nèi)容,需要的朋友可以參考下

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

1、pygame.mixer啟動與初始化

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

復(fù)制代碼 代碼如下:

import pygame
pygame.init()
pygame.mixer.init()

2、播放聲音片段wav文件
播放聲音片段wav文件時,pygame.mixer使用Sound對象,格式為:
復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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音樂文件
這里只是學(xué)習(xí)了一個mp3文件,如果非windows系統(tǒng),那可以試試ogg文件。播放音樂文件主要使用pygame.mixer中的music模塊,主要方法為:
復(fù)制代碼 代碼如下:

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

完整的代碼為:

復(fù)制代碼 代碼如下:

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

程序在運行時,一旦開始播放音樂,就會繼續(xù)做下一件事情,也就是說,如果我們要播放兩首歌,那么
復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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播放結(jié)束
        sys.exit()

4、控制音量

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

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

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

一是中文歌曲名的顯示,通過搜索已經(jīng)解決,加上# encoding='GBK'
二是pygame在播放mp3文件時,發(fā)現(xiàn)并不是所有的mp3文件都有播放,常常會出現(xiàn)播放聲音不正確的情況,有時只是雜響。經(jīng)過與python學(xué)習(xí)交流群(2)中的すeasyげ交流,すeasyげ提出位速128kbps的mp3文件可以播放,但從網(wǎng)上下了幾個128kbps的mp3測試后,發(fā)現(xiàn)播放不正常的情況依然存在。不知道哪位大牛能解決這一問題,希望能把解決方法告知一下,謝謝。

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

play(n,starms,endms):播放,第一個參數(shù)表示次數(shù),第二、三個參數(shù)表示播放的起止位置,單位是毫秒。
stop(): 停止。
pause(), unpause(): 暫停和開始。
isplaying(): 判斷是否正在播放,如果返回為TRUE,表示正在播放歌曲。
ispaused(): 判斷是否為暫停,如果返回為TRUE,表示暫停。
seconds(): 返回mp3文件共多少秒,注意這里的單位是秒。
milliseconds(): 返回mp3文件共多少毫秒,注意這里的單位是毫秒。
mp3play首頁上給出的例子為:

復(fù)制代碼 代碼如下:

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

相關(guān)文章

  • 一文解決Python切換版本問題

    一文解決Python切換版本問題

    由于mac默認(rèn)都會安裝python2.x,這給我們python開發(fā)造成不便,我們經(jīng)常要用到python3.x的版本來進(jìn)行測試、開發(fā),所以本文主要介紹了Python切換版本問題,感興趣的可以了解一下
    2021-07-07
  • Pandas時間類型轉(zhuǎn)換與處理的實現(xiàn)示例

    Pandas時間類型轉(zhuǎn)換與處理的實現(xiàn)示例

    本文主要介紹了Pandas時間類型轉(zhuǎn)換與處理的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python的依賴管理的實現(xiàn)

    python的依賴管理的實現(xiàn)

    這篇文章主要介紹了python的依賴管理的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 基于DataFrame改變列類型的方法

    基于DataFrame改變列類型的方法

    今天小編就為大家分享一篇基于DataFrame改變列類型的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Keras搭建Mask?R-CNN實例分割平臺實現(xiàn)源碼

    Keras搭建Mask?R-CNN實例分割平臺實現(xiàn)源碼

    這篇文章主要為大家介紹了Keras搭建Mask?R-CNN實例分割平臺實現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python實現(xiàn)上下文管理器的方法

    Python實現(xiàn)上下文管理器的方法

    這篇文章主要介紹了Python實現(xiàn)上下文管理器的方法,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-08-08
  • Python如何判斷字符串是否僅包含數(shù)字

    Python如何判斷字符串是否僅包含數(shù)字

    在用Python進(jìn)行數(shù)據(jù)處理的時候,經(jīng)常會遇到DataFrame中的某一列本應(yīng)該是數(shù)值類型,但由于數(shù)據(jù)不規(guī)范導(dǎo)致在字段中夾雜了非數(shù)值類型,本文就介紹了Python如何判斷字符串是否僅包含數(shù)字,感興趣的可以了解一下
    2022-03-03
  • Python實現(xiàn)用戶注冊登錄程序

    Python實現(xiàn)用戶注冊登錄程序

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)用戶注冊登錄程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 使用opencv將視頻幀轉(zhuǎn)成圖片輸出

    使用opencv將視頻幀轉(zhuǎn)成圖片輸出

    今天小編就為大家分享一篇使用opencv將視頻幀轉(zhuǎn)成圖片輸出,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python?munch包?/Munch()?的用法詳解

    Python?munch包?/Munch()?的用法詳解

    這篇文章主要介紹了Python?munch包?/Munch()?的用法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09

最新評論

碌曲县| 新营市| 江安县| 信宜市| 鄂托克前旗| 新津县| 秀山| 龙南县| 喜德县| 恩平市| 筠连县| 武强县| 德化县| 建阳市| 平阴县| 长沙县| 孝义市| 巴塘县| 长沙市| 西吉县| 石泉县| 酉阳| 南涧| 博白县| 平远县| 闻喜县| 黔西县| 利辛县| 漳平市| 洪江市| 青海省| 尉犁县| 互助| 黄龙县| 吉水县| 沙坪坝区| 泾源县| 曲沃县| 上思县| 婺源县| 温泉县|