首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python上同时播放两个不同的歌曲文件?

如何在python上同时播放两个不同的歌曲文件?
EN

Stack Overflow用户
提问于 2012-10-16 03:06:49
回答 1查看 1.6K关注 0票数 1

我试图同时玩song1和song2 (被注释掉的那个),但我不知道如何使用myro或winsound或其他任何工具来做到这一点。有人建议使用线程,但我也不确定该怎么做,因为我只是一个非常初级的程序员。谁能帮我弄清楚这件事,和/或详细解释一下怎么做?这是我到目前为止所知道的:

代码语言:javascript
复制
import winsound
from myro import *
def main():

    HftM1 = makeSong("Db4 3/8; C4 3/8; Bb3 1/4; Bb3 3/8; Ab3 3/8; Gb3 3/8; Ab3 1/16; C4 3/8; Bb3 3/8; Ab3 1/8; Eb3 1/16; F3 1/16; Ab3 3/8; G3 3/8; F3 3/8; C4 1/16; Db4 3/8; C4 3/8; Bb3 1/8; F3 1/16; Gb3 1/16; Bb3 3/8; Ab3 3/8; Gb3 3/8; C4 3/8; Bb3 3/8; Ab3 1/8; Eb3 1/16; F3 1/16; Ab3 3/8; G3 3/8; F3 3/8")

    saveSong(HftM1, "HymnfortheMissing1.txt", append=1)

    HftM2 = makeSong("Bb2 1/8; F3 1/8; Bb3 1/4; Bb2 1/8; F3 3/8; Gb2 1/8; Db3 1/8; Gb3 1/4; Gb2 1/8; Db3 3/8; Ab2 1/8; Eb3 1/8; Ab3 1/4; Ab2 1/8; Eb3 3/8; F2 1/8; C3 1/8; F3 1/4; F2 1/8; C3 3/8; Bb2 1/8; F3 1/8; Bb3 1/4; Bb2 1/8; F3 3/8; Gb2 1/8; Db3 1/8; Gb3 1/4; Gb2 1/8; Db3 3/8; Ab2 1/8; Eb3 1/8; Ab3 1/4; Ab2 1/8; Eb3 3/8; F2 1/8; C3 1/8; F3 1/4; F2 1/8; C3 3/8")

    saveSong(HftM2, "HymnfortheMissing2.txt", append=1)

    song1 = readSong("HymnfortheMissing1.txt")

    #song2 = readSong("HymnfortheMissing2.txt") #This part of the song is supposed to be played at the same time as the first part, but I don't know how to do that so...

    play = []

    for n in range(len(song1)):
        play = song1[n]
        note = play[0]
        duration = play[1]
        winsound.Beep(int(note), int(duration*2000))
main()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-16 03:11:54

我建议您使用PyGame来完成这类工作,并查看此related question。你必须使用混音器模块。

通常,您必须在音频流上使用一些数学操作来混合PCM数据(例如讨论see this question)。

更新:Myro (我从未使用过)告诉in the docs,有一种方法可以使用beep函数完成此操作:

无蜂鸣音(self,duration,

,frequency2 = None):发出提示音。如果给出了两个音调,机器人就会把它们组合起来。

举个简单的例子,如果你在第一首歌中有音符A,持续时间1秒,在第二首歌中有音符B,持续时间2秒,你必须调用beep两次:第一次同时播放音符A和B 1秒,然后只播放音符B 1秒。

不用说,这段代码将比仅仅使用诸如PyGame之类的东西播放音频文件中的声音并混合它们要复杂得多。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12902336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档