詳解python播放音頻的三種方法
第一種 使用pygame模塊
pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_volume(0.5) pygame.mixer.music.play()
缺點(diǎn):pygame模塊播放音頻時(shí),有時(shí)候會(huì)產(chǎn)生失真,且無(wú)法通過(guò)修改播放器的頻率來(lái)矯正音色。
第二種 使用pyqt5模塊
from PyQt5 import QtMultimedia from PyQt5.QtCore import QUrl file = QUrl.fromLocalFile(wav_file) # 音頻文件路徑 content = QtMultimedia.QMediaContent(file) player.setMedia(content) player.setVolume(50.0) player.play()
缺點(diǎn):由于大部分人使用的python環(huán)境為anaconda配置的環(huán)境,在anaconda下的pyqt5沒(méi)有QtMultimedia這一模塊,只能自己使用pip安裝,但是使用pip安裝后如果anaconda環(huán)境下有spyder、anaconda navigator等圖形化界面程序,這些程序會(huì)無(wú)法打開(kāi),因此使用pip安裝后調(diào)試完畢后記得使用pip卸載掉,之后才能正常打開(kāi)spyder等程序。
第三種 使用pyaudio模塊
import pyaudio import wave import sys chunk = 1024 wf = wave.open('gyh.wav', 'rb') p = pyaudio.PyAudio() stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), channels=wf.getnchannels(), rate=wf.getframerate(), output=True) data = wf.readframes(chunk) while len(data) > 0: stream.write(data) data = wf.readframes(CHUNK) stream.stop_stream() stream.close() p.terminate()
缺點(diǎn):無(wú),就是代碼多點(diǎn)。
總結(jié)
以上所述是小編給大家介紹的python播放音頻的三種方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
python的schedule定時(shí)任務(wù)模塊二次封裝方法
今天小編就為大家分享一篇python的schedule定時(shí)任務(wù)模塊二次封裝方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02python中利用await關(guān)鍵字如何等待Future對(duì)象完成詳解
為了簡(jiǎn)化并更好地標(biāo)識(shí)異步IO,從Python 3.5開(kāi)始引入了新的語(yǔ)法async和await,可以讓coroutine的代碼更簡(jiǎn)潔易讀。下面這篇文章主要給大家介紹了關(guān)于python中利用await關(guān)鍵字如何等待Future對(duì)象完成的相關(guān)資料,需要的朋友可以參考下。2017-09-09python學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)實(shí)例代碼
數(shù)據(jù)結(jié)構(gòu)就是用來(lái)將數(shù)據(jù)組織在一起的結(jié)構(gòu)。換句話說(shuō),數(shù)據(jù)結(jié)構(gòu)是用來(lái)存儲(chǔ)一系列關(guān)聯(lián)數(shù)據(jù)的東西。在Python中有四種內(nèi)建的數(shù)據(jù)結(jié)構(gòu),分別是List、Tuple、Dictionary以及Set。本文將通過(guò)實(shí)例來(lái)介紹這些數(shù)據(jù)結(jié)構(gòu)的用法。2015-05-05python def 定義函數(shù),調(diào)用函數(shù)方式
這篇文章主要介紹了python def 定義函數(shù),調(diào)用函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python進(jìn)程multiprocessing.Process()的使用解讀
這篇文章主要介紹了Python進(jìn)程multiprocessing.Process()的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()的區(qū)別
本文主要介紹了OpenCV cv2.imread(),cv2.imshow(),cv2.imwrite()的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06python中的常用運(yùn)算符和優(yōu)先級(jí)
這篇文章主要介紹了python中的常用運(yùn)算符和優(yōu)先級(jí),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06基于Python數(shù)據(jù)分析之pandas統(tǒng)計(jì)分析
這篇文章主要介紹了基于Python數(shù)據(jù)分析之pandas統(tǒng)計(jì)分析,具有很好對(duì)參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03