我想用Pyaudio和tkinter播放一个音频波形文件,当按下按钮时音频播放,当按下停止按钮时音频停止。现在,音频是一个简单的5秒波形文件,正如它所设想的,音频在5秒后停止。我想知道如何循环它,这样的音频一直播放下去,除非点击停止按钮。我找不到用这个密码的方法。在from tkinter import *

import pyaudio

import wave

import sys

import threading

# --- classes ---

def play_audio():

global is_playing

global my_thread

chunk = 1024

wf = wave.open('sound.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 data != '' and is_playing: # is_playing to stop playing

stream.write(data)

data = wf.readframes(chunk)

stream.stop_stream()

stream.close()

p.terminate()

# --- functions ---

def press_button_play():

global is_playing

global my_thread

if not is_playing:

is_playing = True

my_thread = threading.Thread(target=play_audio)

my_thread.start()

def press_button_stop():

global is_playing

global my_thread

if is_playing:

is_playing = False

my_thread.join()

# --- main ---

is_playing = False

my_thread = None

root = Tk()

root.title("Compose-O-Matic")

root.geometry("400x300")

button_start = Button(root, text="PLAY", command=press_button_play)

button_start.grid()

button_stop = Button(root, text="STOP", command=press_button_stop)

button_stop.grid()

root.mainloop()

python怎么循环播放_如何用pyaudio循环播放音频?相关推荐

  1. java中循环输入_如何用java循环输入并且当输入0时结束循环?

    如何用java循环输入并且当输入0时结束循环? import java.util.Scanner; public class Avg { public static void main(String[ ...

  2. 为什么双层循环 冒泡排序_冒泡排序的双重循环理解

    主要说一下冒泡排序的一些关键地方的个人理解,比如算法思想,两个循环的作用意义,中间循环变量范围的确定等. 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面 ...

  3. do while循环语句_流程控制之循环语句【while循环语句】

    while循环语句 while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句. 语法如下: while(条件表达式){ 执行语句 } 条件表达式:这是用于控制循环的条 ...

  4. birt脚本for循环语句_如何使用 for 循环语句嵌套方法!

    for循环语法: for( 表达式1:表达式2:表达式3) { 循环体 } 循环从表达式1开始 - 表达式2(判别表达式)- 真 - 执行循环体 - 表达式3 - 判断表达式2 真 : 继续 - 循环 ...

  5. flowplayer播放_在iPad上自动播放Flowplayer

    flowplayer播放 如何设置flowplayer ipad自动播放 . " iOS不允许在页面加载时自动播放视频. 因此,为保持一致性,我们建议嵌入初始图像." 请尝试以下代 ...

  6. gif循环播放_防止动画GIF循环播放

    gif循环播放 We all know animated GIFs put the "fun" in "functional." I've recently w ...

  7. python贪吃蛇控制台_如何用Python写一个贪吃蛇AI

    前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD, ...

  8. 如何制作python检查小软件_如何用Python制作整蛊小程序

    原标题:如何用Python制作整蛊小程序 下面的整蛊程序,千万不要发代码,否则就实现不了你整蛊的目的了.完成后一定要打包成一个exe程序,再发给朋友使用 . 1. 使用 pip install pyi ...

  9. python 读取excel图片_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  10. python神经网络构建图_如何用卷积神经网络构建图像?

    原标题:如何用卷积神经网络构建图像? 原标题 |Everything you need to know to master Convolutional Neural Networks 作者 | Tir ...

最新文章

  1. java中action请求_java模拟js发送action请求
  2. python手动绘图_建筑师为什么要会python编程?
  3. python – 处理psycopg2中的错误 psycopg2.errors.InFailedSqlTransaction: current transaction is aborted, comm
  4. Java(1-15)
  5. ajax中tooltip,工具提示插件——tooltip
  6. 大学生必须要知道的毕业设计基本流程
  7. 魔鬼一样的二分查找模板
  8. 基于nodejs的开源博客
  9. 打印服务Print Spooler自动停止解决方案
  10. 通过google的gson把xml转成json
  11. C语言(求解一元二次方程的根)
  12. 怎么将pdf转换成word?
  13. maven dependency的作用英文解释(转载)
  14. 图解TCP/IP之半双工全双工通信
  15. FLOPS, FLOPs and MACs
  16. 强制关闭无法关闭的进程的方法
  17. promise封装小程序的蓝牙类
  18. Android双系统之基本问题研究
  19. C++函数默认参数(函数传入实参个数比形参个数少)
  20. vue3 获取当前路由参数

热门文章

  1. 使用文本标签做一个简单的自我介绍
  2. bat 删除文件脚本
  3. 机电一体化柔性生产线加工系统
  4. 机器人电机驱动及智能控制分析及展望
  5. HTML/CSS 长度单位 px和pt的区别
  6. 南信大 计算机与软件学院 校花,美哭了!南京12所高校最美“校花”新鲜出炉!颜值爆表!你的母校上榜了吗?...
  7. word中二级标题随一级标题自动编号
  8. 一名大学毕业生的反思《上》
  9. pyecharts动态图表嵌入ppt
  10. python接入讯代理_[Python3网络爬虫开发实战] 9.3-付费讯代理、阿布云代理的使用...