当前位置: 首页 > news >正文

怎么做可上传图片的网站/seo最新快速排名

怎么做可上传图片的网站,seo最新快速排名,wordpress flat,网站的空间是转:https://segmentfault.com/q/1010000009667842 我想要频繁地使用pyaudio来播放音频,虽然他不是多线程模块,但是只使用一个子线程播放,主线程控制播放的开关应该是没有问题的。但是当我使用它播放时遇到了不能解决的麻烦。 im…

转:https://segmentfault.com/q/1010000009667842

我想要频繁地使用pyaudio来播放音频,虽然他不是多线程模块,但是只使用一个子线程播放,主线程控制播放的开关应该是没有问题的。但是当我使用它播放时遇到了不能解决的麻烦。

import threading
import wave
import pyaudio
import time
pa=pyaudio.PyAudio()
f=wave.open('/home/dyan/catkin_ws/src/hlf_robot/scripts/hlf_voice/my.wav','rb')
raw_data=f.readframes(f.getnframes())
f.close()
samplewidth,channels,framerate,raw_data=2,1,16000,raw_data

i=0
stream1=''
def test():
    while True:
        global i,pa,stream1
        try:
            print i
            stream1=pa.open(format=pa.get_format_from_width(samplewidth),
                            channels=channels,
                            rate=framerate,
                            output=True)
            stream1.write(raw_data)
    
            i+=1
            print i
        except IOError,e:
                print e
        except Exception,e:
                print e
                break
t0=threading.Thread(target=test)
t0.start()
time.sleep(3)
while True:
    if stream1.is_active():
        print "is_active"
    else:
        print "not active"
    if stream1.is_stopped():
        print "is_stopped"
    else:
        print "not stopped"
    print stream1._is_running
    print stream1._stream
    print '123'
    try:
        stream1.stop_stream()
        print '456'
        stream1.close()
    except Exception,e:
        print e
        break
    print '789'
    time.sleep(3)

输出是这样的,然后崩了

0                                                #子线程循环第一次
is_active                                        #
not stopped                                      #
True                                             #stream1._is_running
<_portaudio.Stream object at 0x7efd71e00cb0>     #stream1._stream
123                                              #调用stop_stream()之前
456                                              #调用stop_stream()之后,close()之前
[Errno Unanticipated host error] -9999           #子线程捕获到主线程调用stream1.stop_stream()时由stream1.write()抛出的异常IOError,忽略这个异常继续执行
0                                                #子线程stream1.write()抛出异常i+=1未执行继续循环在pa.open()之前的print

 

1、也就是说在调用stream1.stop_stream()后调用stream1.close()导致程序崩溃了,而且子线程和主线程都没有捕获到异常!!!!
2、如果将stop_stream()后的close()注释掉短时间内没有任何问题,但是持续运行大约10分钟左右虽然不会崩溃但是再也不能继续播放。pa.open()一直抛出异常[Errno Illegal combination of I/O devices] -9993,当我关闭程序重启时pa.open()会抛出异常('Invalid sample rate', -9997),播放用不了了!!!

这个问题该如何解决?


暂时使用每次播放均重开一个pyaudio.Pyaudio()对象的方式解决,这大概额外使用了cpu时间10ms。持续跑了将近20个小时没出问题。

...
try:
    self.pa=pyaudio.PyAudio()
                    
    self.stream=self.pa.open(format=self.pa.get_format_from_width(samplewidth),
                    channels=channels,
                    rate=framerate,
                    output=True)
    self.stream.write(raw_data)
except IOError,e:
    pass
finally:
    self.stream.stop_stream()
    self.stream.close()
    self.pa.terminate()
...

http://www.lbrq.cn/news/1309195.html

相关文章:

  • 东城专业网站建设公司/手机怎么建自己的网站
  • 昆山网站设计公司/网站优化排名哪家好
  • 花都区pc端网站建设/网络营销方法
  • 网站页面的滑动怎么做的/网站描述和关键词怎么写
  • 校园网站怎么做HTML/seo 优化思路
  • 做信息网站的盈利方式有哪些/河南品牌网络推广外包
  • 柳州做网站有kv/网络推广计划制定步骤
  • 西安网站建设选任我行网络/如何利用网络进行推广和宣传
  • 群晖系统可以做网站吗/seo分析与优化实训心得
  • 中文商城响应式html网站模板/最好用的手机优化软件
  • 做购物网站需要什么资质/关键词歌词林俊杰
  • php动态网站设计/上海网站建设哪家好
  • 安徽网络公司排名/seo推广的方法
  • 佛山微网站推广/百度一下百度主页度
  • 深圳市建设注册执业资格中心网站/百度收录官网
  • 临沂企业网站建站模板/成都门户网站建设
  • 国外商业网站设计/四川网络推广推广机构
  • 网站建设平台哪个部门管/百度保障平台 客服
  • 烟台网站建设的公司/品牌营销策略分析
  • 有个网站发任务 用手机可以做/苏州seo按天扣费
  • B2B网站建设哪家好/松原市新闻
  • 做销售网站的公司哪家最好/网络营销的特点包括
  • 网站建设中主页指的是/百度客服人工服务电话
  • python 自己做网站/seo关键字怎么优化
  • 代码生成器在线/排名优化公司哪家靠谱
  • 怎样建设文章网站/高端seo服务
  • 南山做网站联系电话/全网最好的推广平台
  • 软件开发流程有哪些步骤/seo排名优化课程
  • 有专门学做衣服网站/百度客服人工
  • 想自己做网站流程/肇庆百度快照优化
  • 分布式分片策略中,分片数量的评估与选择
  • watermark的作用
  • MAC 苹果版Adobe Photoshop 2019下载及保姆级安装教程!!
  • SupMotion 云迁移数据工具实现原理(上)
  • 如何在硬件中进行有效地调试
  • 嵌入式Linux:进程间通信机制