zoukankan      html  css  js  c++  java
  • Python加载声音

    对于音频的操作可以使用pygame包中的sound 和 music对象进行音乐播放。

    Sound对象适合处理较短的音乐,如OGG和WAV格式的音频文件。

    Music对象出来可以播放OGG、WAV音频外,还可以播放mp3格式。

    from pygame import mixer   #mixer对象可以播放音乐

    一、Sound 对象

    mixer.init()  先初始化

    创建Sound对象

    sound = mixer.Sound(音频文件名)

    sound.play(loops = 0)   播放音乐,loops代表播放次数,默认为0,表示播放一次;loops=5可播放6次;loops=-1 可重复播放

    sound.stop()   结束播放

    sound.set_volume(value)   设置音量,音量有最低到高0.0--1.0

    sound.get_volume()  获取当前的音量

    二、music对象

    mixer.init()  先初始化

    mixer.music.load(filename)   停止正在播放的音乐,filename为歌曲的文件名

    mixer.music.play(loops=0,start=0.0)   播放歌曲,loops表示播放次数,默认为0,播放1次;loops=5可以播放6次;loop=-1可以重复播放

    mixer.music.stop()  停止播放

    mixer.music.pause()  暂停播放

    mixer.music.unpause()   用pause()暂停后,必须使用这个函数来继续播放

    mixer.music.set_volume(value)  设置音量,最大1.0,最小0.0

    mixer.music.get_volume()  获取当前音量

    mixer.music.get_busy()  检查歌曲播放状态,True为正在播,False为不在播

      1 from pygame import mixer
      2 import glob
      3 import tkinter as tk
      4 
      5 mixer.init()
      6 win = tk.Tk()
      7 win.geometry("640x380")
      8 win.title("mp3 播放器")
      9 
     10 labeltitle = tk.Label(win,text='mp3 播放器',fg = 'red')
     11 labeltitle.pack()
     12 
     13 framel = tk.Frame(win)
     14 framel.pack()
     15 
     16 musicList = glob.glob('*.mp3')
     17 
     18 playSong = preplaySone = ''
     19 index = 0
     20 volume = 0.6
     21 choice = tk.StringVar()
     22 
     23 def choose():
     24     global playSong
     25     msg.set("播放歌曲:"+choice.get())
     26     playSong = choice.get()
     27 
     28 
     29 
     30 def playMp3():
     31     global status,playSong,preplaySone
     32     if playSong == preplaySone:
     33         if not mixer.music.get_busy():
     34             mixer.music.load(playSong)
     35             mixer.music.play(loops = -1)
     36         else:
     37             mixer.music.pause()
     38     else:
     39         playNewSong()
     40         preplaySone = playSong
     41 
     42 def playNewSong():
     43     global playSong
     44     mixer.music.stop()
     45     mixer.music.load(playSong)
     46     mixer.music.play(loops = -1)
     47     msg.set("正在播放:{}".format(playSong))
     48 
     49 def pauseMp3():
     50     mixer.music.pause()
     51     msg.set("暂停歌曲:{}".format(playSong))
     52 
     53 def increase():
     54     global volume
     55     volume += 0.1
     56     if volume >=1:
     57         volume = 1
     58     mixer.music.set_volume(volume)
     59 
     60 def decrease():
     61     global volume
     62     volume -= 0.1
     63     if volume <= 0.1:
     64         volume = 0.1
     65     mixer.music.set_volume(volume)
     66 
     67 def stopMp3():
     68     mixer.music.stop()
     69     msg.set("
    停止播放")
     70 
     71 
     72 
     73 def exitMp3():
     74     mixer.music.stop()
     75     win.destroy()
     76 
     77 
     78 for music in musicList:
     79     rbtem = tk.Radiobutton(framel,text=music,variable = choice,value=music,command=choose)
     80     if index == 0:
     81         rbtem.select()
     82         playSong = preplaySone = music
     83     rbtem.grid(row = index,column = 0,sticky = 'w')
     84     index += 1
     85 
     86 msg = tk.StringVar()
     87 msg.set("
    播放歌曲:"+playSong)
     88 label = tk.Label(win,textvariable=msg,fg='blue')
     89 label.pack()
     90 
     91 labelsep = tk.Label(win,text='
    ')
     92 labelsep.pack()
     93 
     94 frame2 = tk.Frame(win)
     95 frame2.pack()
     96 
     97 button1 = tk.Button(frame2,text='播放',width=8,command = playMp3)
     98 button1.grid(row=0,column=0,padx=5,pady=5)
     99 
    100 button2 = tk.Button(frame2,text='暂停',width=8,command = pauseMp3)
    101 button2.grid(row=0,column=1,padx=5,pady=5)
    102 
    103 button3 = tk.Button(frame2,text='音量调大',width=8,command = increase)
    104 button3.grid(row=0,column=2,padx=5,pady=5)
    105 
    106 button4 = tk.Button(frame2,text='音量调小',width=8,command = decrease)
    107 button4.grid(row=0,column=3,padx=5,pady=5)
    108 
    109 button5 = tk.Button(frame2,text='停止',width=8,command = stopMp3)
    110 button5.grid(row=0,column=4,padx=5,pady=5)
    111 
    112 button6 = tk.Button(frame2,text='结束',width=8,command = exitMp3)
    113 button6.grid(row=0,column=5,padx=5,pady=5)
    114 
    115 win.protocol("WM_DELETE_WINDOW",exitMp3)
    116 win.mainloop()
    117 #print(musicList)
    View Code

       

    僵尸将臣
  • 相关阅读:
    iOS开发系列--通知与消息机制(转)
    iOS Storyboard全解析(转)
    在IOS代码中使用UNIX命令
    如何用代码实现iPhone手机软件注销和手机重启
    ios多线程开发 GCD常见用法
    ios多线程开发 GCD的基本使用
    ios错误码:NSError对象.code
    iOS9 HTTP请求失败
    (转)空指针和野指针
    (转)ARC指南
  • 原文地址:https://www.cnblogs.com/sunshenggang/p/9279228.html
Copyright © 2011-2022 走看看