zoukankan      html  css  js  c++  java
  • pygame.mixer.Channel--音频通道

    import pygame
    import time
    
    pygame.init()
    screen = pygame.display.set_mode((200, 100))
    
    bb=pygame.mixer.Sound('酒醉的蝴蝶.ogg')
    a=pygame.mixer.get_num_channels()  #获取本机的音频通道数
    ch=pygame.mixer.Channel(0)   #创建一个Channel对象
    #参数:从0到pygame.mixer.get_num_channels() 的值
    #Channel对象可用于精确控制Sounds的播放。一个频道只能播放一个声音
    
    ch.play(bb,loops=0)  #在特定频道上播放Sound声音
    #如果频道正在播放任何其他声音,它将被停止
    #参数1:Sound对象
    #loops:控制音乐播放的次数。播放(5)将使音乐播放一次,然后重复5次,总共是6次。如果循环是-1,那么音乐就会无限重复
    #maxtime:在给定的毫秒数后停止播放.  默认0--表示全部播放
    #fade_ms=0:将使声音以0音量开始播放,并在给定时间内逐渐升至全音量
    
    time.sleep(30)
    
    ch.stop()   #停止在频道上播放声音
    #播放停止后,频道可用于播放新的声音
    
    
    
    print()
    
    
    clock = pygame.time.Clock()
    while True:
        t = clock.tick(60)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()
    
        pygame.display.update()
    ch.pause()   #暂时停止播放频道
    #暂时停止在频道上播放声音。它可以在之后调用 Channel.unpause() 恢复
    
    ch.unpause()  #恢复暂停播放频道
    ch.fadeout(30)  #再播放指定时间后就淡出并停止播放音乐
    #参数:单位毫秒
    ch.set_volume(0.3)  ##设置此声音的播放音量
    #参数是从0.0到1.0的值
    #set_volume(left, right)
    #如果传递一个参数,则它将同时设置左右声道的音量。如果传递两个参数并且混音器处于立体声模式,则第一个参数将是左扬声器的音量,第二个参数将是右扬声器的音量。(如果第二个参数为None,则第一个参数将是两个扬声器的音量。)
    
    a=ch.get_volume()  #获得播放频道的音量
    a=ch.get_busy()  #检查通道是否处于活动状态
    #如果通道正在主动混合声音,则返回true。如果通道空闲,则返回False
    a=ch.get_sound()  #返回当前在此频道上播放的实际Sound对象。如果通道空闲,则返回None
    ch.queue(cc)  #排队Sound对象
    #声音在频道上排队时,它将在当前声音结束后立即开始播放。每个通道一次只能排队一个声音。排队的声音仅在当前播放自动结束时播放。在对Channel.stop()或的任何其他呼叫中清除它 Channel.play()
    #如果在频道上没有主动播放声音,则声音将立即开始播放
    a=ch.get_queue()  #返回排队的Sound对象
    #如果声音已在此频道上排队,则会返回该声音。一旦排队的声音开始播放,它将不再在队列中

    set_endevent(type) -> None

    播放停止时让频道发送事件

    如果您调用Sound.play(n)或Channel.play(sound,n),结束事件仅发送一次:声音播放“n + 1”次后

    如果在声音仍然播放时调用Channel.stop()或Channel.play()调用,则会立即发布事件

    type参数将是发送到队列的事件id。这可以是任何有效的事件类型,但一个好的选择是pygame.locals.USEREVENT和之间的值 pygame.locals.NUMEVENTS。如果没有给出类型参数,那么Channel将停止发送事件

    get_endevent()

    获取播放停止时频道发送的事件

    返回每次Channel完成声音播放时要发送的事件类型。如果没有功能返回该功能 pygame.NOEVENT

  • 相关阅读:
    mysql 系统表的作用
    从事务隔离级别谈到Hibernate乐观锁,悲观锁
    python 模拟登陆,请求包含cookie信息
    Python入门介绍
    mysql中设置小数
    分割png图片
    ubuntu 14.04 安装win7虚拟机
    rwx
    获取文件名称 basename 用法
    like tp
  • 原文地址:https://www.cnblogs.com/liming19680104/p/13228923.html
Copyright © 2011-2022 走看看