pygame 的聲音播放


轉載注明鏈接:https://www.cnblogs.com/liquancai/p/13236974.html

pygame 的聲音播放

1. sound 對象

在初始化聲音設備后就可以讀取一個音樂文件到一個 Sound 對象中。pygame.mixer.sound() 接收一個文件名,也可以是一個文件對象,不過這個文件對象必須是 WAV 或者 OGG 文件。

hello_sound = pygame.mixer.Sound("hello.ogg")		# 建立 Sound 對象
hello_sound.play()					# 聲音播放一次

一旦這個 Sound 對象出來了,就可以使用 play() 來播放它。play(loop, maxtime) 可以接收兩個參數,loop 是重復的次數(取1是兩次,注意是重復的次數,而不是播放的次數),-1 意味着無限循環;maxtime 是指多少毫秒后結束。

若不使用任何參數調用,意味着把這個聲音播放一次。一旦 play() 方法調用成功,就會返回一個 Channel 對象,否則返回一個 None。


2. music 對象

pygame 中還提供了 pygame.mixer.music 類來控制背景音樂的播放。pygame.mixer.music 用來播放 MP3 和 OGG 文件,不過 MP3 並不是所有的系統都支持(Linux 默認就不支持 MP3 播放)。用戶可以用 pygame.mixer.music.load() 加載一個文件,然后使用 pygame.mixer.music.play() 播放,不放的時候就用 stop() 方法停止,當然也有類似錄影機上的 pause() 和 unpause() 方法。

# 加載背景音樂
pygame.mixer.music.load("hello.mp3")
pygame.mixer.music.set_volume(music_volume / 100.0)
# 循環播放,從音樂的第30秒開始
pygame.mixer.music.play(-1, 30.0)

在游戲退出事件中加入停止音樂播放的代碼:

# 停止音樂播放
pygame.mixer.music.stop()

music 對象提供了豐富的函數方法,下面分別介紹:

  1. pygame.mixer.music.load()

    功能:加載音樂文件

    格式:pygame.mixer.music.load(filename)

  2. pygame.mixer.music.play()

    功能:播放音樂

    格式:pygame.mixer.music.play(loops = 0, start = 0.0)

    其中 loops 表示循環次數,如果設置為 -1 ,表示不停的循環播放,如果 loops 為 5 ,則播放 5+1=6 次;start 表示從音樂文件的哪一秒開始播放,設置為 0 表示從開始完整播放。

  3. pygame.mixer.music.rewind()

    功能:重新播放

    格式:pygame.mixer.music.rewind()

  4. pygame.mixer.music.stop()

    功能:停止播放

    格式:pygame.mixer.music.stop()

  5. pygame.mixer.music.pause()

    功能:暫停播放

    格式:pygame.mixer.music.pause()

    用戶可以通過 pygame.mixer.music.unpause() 恢復播放。

  6. pygame.mixer.music.set_volume()

    功能:設置音量

    格式:pygame.mixer.music.set_volume(value)

    其中 value 的取值為 0.0 ~ 1.0 。

  7. pyagme.mixer.music.get_pos()

    功能:獲取當前播放了多長時間

    格式:pygame.mixer.music.get_pos()

    返回值為 time 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM