b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

酷狗音乐播放试听_百度随心听播放_百度随身听音乐播放器

电脑杂谈  发布时间:2017-01-22 23:12:38  来源:网络整理

百度随身听音乐播放器百度随身听音乐播放器

解释:pygame+music

之前发布了自己写的小程序:百度随心听音乐播放器的一些效果图

你可以去到这里再次看看效果:

pygame系列_百度随心听_完美的UI设计

这个程序的灵感来自于百度随心听

说明:

动作按钮全部是画出来的,没有用到任何图片

用到图片的只有:背景,歌手图片,作者图片

经过一个阶段的调试,现在算是可以拿上台面和大家交流

功能介绍:

A.四个按钮介绍

1.完成停止,播放音乐功能

2.喜欢/不喜欢当前所播放的音乐

3.删除当前所播放的音乐(物理环境下不会删除,删除的是内存中的)

4.下一曲

5.当鼠标经过按钮的时候,按钮颜色会变化

B.状态栏(最下面)

1.显示所有歌曲数(AllSongs)

2.当前播放的歌曲是第只歌曲

3.当前音量(范围:0 - 10)

4.音量的图形显示(这里没有用到图片,而是系统画出来的:-))

5.我的邮箱信息:hongtenzone@foxmail.com

酷狗音乐播放试听_百度随身听音乐播放器_百度随心听播放

C.右下角

1.当鼠标移动到圆区域,会展示出我的相片和'Yes,You are Luck:)'字样

鼠标一开的时候会自动隐藏(我想接触过android系统手机的的朋友,可能有这样的经历,在工具里面有一个地方

当点击三下的时候,会出现android里面的一副图片....对我这里的灵感来自于这里ll)

=======================================

下面我说说我做的思路吧

我想有一部分朋友会喜欢的...:)

首先,主题功能是音乐播放,那么我们就应该实现这个音乐播放的功能

哈哈,这个灵感来自于我之前写的小游戏:

pygame系列_小球完全弹性碰撞游戏_源码下载

在这个游戏中,我实现了音乐的播放,于是乎我就想在音乐播放上面做一些文章...

接下来是程序PyMusic的主题界面需要考虑,我个人喜欢听歌...百度音乐,百度随心听都是常去的地方..

百度随心听的界面设计简洁,很适合我的风格...所以我选择了百度随心听..

于是乎我看是看百度随心听的代码...一不小心被我大概看明白了按钮之间的逻辑....

一时间,头脑中出现了PyMusic的原型....

为什么不做一个呢?我就这样问着我自己,慢慢在脑海中呈现PyMusic的原型...

然后开始动笔,把pyMusic的原型在纸上画了出来....

画好了,就开始分析...(这个过程有一点长..)

然后把原型中的物体(按钮,图片加载..)一个一个的实现..

最后加上我的小自信..呵呵,成啦..

=======================================

一些细节

在做PyMusic的过程中,需要注意一些细节的地方

我下面把这些地方罗列出来

百度随心听播放_酷狗音乐播放试听_百度随身听音乐播放器

1.音量图形的初始化

1 VOLUME_POINTS = []2 VOLUME_POINTS_START = []3 VOLUME_RECT_COLORS = []4 for p in range(170, 250, 7):5     VOLUME_POINTS.append([SCREEN_W - p,SCREEN_H + 20])6 for ps in range(175, 250, 7):7     VOLUME_POINTS_START.append([SCREEN_W - ps, SCREEN_H])8     VOLUME_RECT_COLORS.append((randint(0, 255), randint(0, 255), randint(0, 255)))

2.加载歌曲和图片

1 SONG_ARRAY = []2 SONG_IMAGE = []3 for song in range(len(SONGS)):4     SONG_ARRAY.append(pygame.mixer.Sound(os.path.join(DATA_DIR, SOUND_DIR, SONGS[song][0])))5     SONG_IMAGE.append(pygame.image.load(os.path.join(DATA_DIR, IMAGE_DIR, SONGS[song][3])).convert())

3.字体加载

1 font = pygame.font.Font(os.path.join(DATA_DIR, FONT_DIR, 'TORK____.ttf'), 14)2 font_song_title = pygame.font.Font(os.path.join(DATA_DIR, FONT_DIR, 'msyhbd.ttf'), 24)3 font_song = pygame.font.Font(os.path.join(DATA_DIR, FONT_DIR, 'msyh.ttf'), 16)

4.停止/播放按钮

 1 def button_play(screen, color): 2     pygame.draw.circle(screen, color, CIRCLES_POS[0], CIRCLR_R, CIRCLR_W) 3     points=[(77,340),(77,360),(95,350)] 4     pygame.draw.polygon(screen,color,points) 5  6 def button_stop(screen, color): 7     pygame.draw.circle(screen, color, CIRCLES_POS[0], CIRCLR_R, CIRCLR_W) 8     pygame.draw.rect(screen, 9                      color,10                      Rect(77, 340, 5, 23 ))11     pygame.draw.rect(screen,12                      color,13                      Rect(88, 340, 5, 23 ))

5.删除歌曲按钮

 1 def button_del(screen, color): 2     pygame.draw.circle(screen, color, CIRCLES_POS[2], CIRCLR_R, CIRCLR_W) 3     pygame.draw.circle(screen, color, (215, 340), 6, 3) 4     pygame.draw.rect(screen, 5                      color, 6                      Rect(200, 340, 30, 6 )) 7     pygame.draw.rect(screen, 8                      color, 9                      Rect(204, 340, 3, 20 ))10     pygame.draw.rect(screen,11                      color,12                      Rect(210, 340, 3, 20 ))13     pygame.draw.rect(screen,14                      color,15                      Rect(217, 340, 3, 20 ))16     pygame.draw.rect(screen,17                      color,18                      Rect(223, 340, 3, 20 ))19     pygame.draw.rect(screen,20                      color,21                      Rect(204, 360, 22, 5 ))

6.作者信息展示

1 def button_authon_image(screen, color):2      pygame.draw.circle(screen, color, CIRCLES_POS[4], CIRCLR_R, CIRCLR_W)3      pygame.draw.rect(screen,4                      (255, 255, 255),5                      Rect(418, 248, 144, 154 ))6      screen.blit(author_image, (420, 250))7      luck = font_song_title.render('Yes, You are Luck :-)', True, (255,165,10))8      screen.blit(luck, (280, 416))

7.第一个器

 1 def listener(): 2     global PLAY_FLAG 3     global PREFER_FLAG 4     x, y = pygame.mouse.get_pos() 5     color = (255,255,25) 6     color_red = (230, 0, 0) 7     for index in range(len(CIRCLES_POS)): 8         p_x = (CIRCLES_POS[index][0] - x)**2 9         p_y = (CIRCLES_POS[index][1] - y)**210         p_r = (CIRCLR_R)**211         if (p_x + p_y <= p_r):12             if index == 0 and PLAY_FLAG:13                 button_stop(screen, color)14             elif index == 0 and not PLAY_FLAG:15                 button_play(screen, color)16             elif index == 1 and PREFER_FLAG:17                 button_perfer(screen, color)18             elif index == 1 and not PREFER_FLAG:19                 button_perfer(screen, color_red)20             elif index == 2:21                 button_del(screen, color)22             elif index == 3:23                 button_next_song(screen, color)24             elif index == 4:25                 button_authon_image(screen, color)

8.第二个器

 1 def mouse_down_listener(sound): 2     global PLAY_FLAG 3     global PREFER_FLAG 4     global SONG_FLAG 5     x, y = pygame.mouse.get_pos() 6     for index in range(len(CIRCLES_POS)): 7         p_x = (CIRCLES_POS[index][0] - x)**2 8         p_y = (CIRCLES_POS[index][1] - y)**2 9         p_r = (CIRCLR_R)**210         if (p_x + p_y <= p_r):11             if index == 0 and PLAY_FLAG:12                 #print('stop now......')13                 sound.stop()14                 PLAY_FLAG = False15             elif index == 0 and not PLAY_FLAG:16                 #print('play now ... ... ... ...')17                 sound.play(0)18                 PLAY_FLAG = True19             elif index == 1 and PREFER_FLAG:20                 print('perfer song....<<', SONGS[SONG_FLAG][1], '>>')21                 PREFER_FLAG = False22             elif index == 1 and not PREFER_FLAG:23                 print('not perfer song... <<', SONGS[SONG_FLAG][1], '>>')24                 PREFER_FLAG = True25             elif index == 2:26                 sound.stop()27                 print('delete song....<<', SONGS[SONG_FLAG][1], '>>')28                 if SONG_FLAG > 0:29                     SONGS.pop(SONG_FLAG)30                     SONG_IMAGE.pop(SONG_FLAG)31                     SONG_ARRAY.pop(SONG_FLAG)32                     if SONG_FLAG >= len(SONGS) - 1:33                         SONG_FLAG -= 134                 else:35                     print('This is the last song.')36             elif index == 3:37                 sound.stop()38                 if SONG_FLAG < len(SONGS) - 1:39                     SONG_FLAG += 140                 else:41                     SONG_FLAG = 042                 #print('next song....')43                 

9.鼠标按下事件

1 elif event.type == MOUSEBUTTONDOWN:2             pressed_array = pygame.mouse.get_pressed()3             for index in range(len(pressed_array)):4                 if pressed_array[index]:5                     if index == 0: #When the LEFT button down6                         mouse_down_listener(bg_sound)

上面的都是一些细节的地方...

=======================================

下面是完整代码部分:

=======================================

  1 #pygame music  2   3 import os, pygame  4 from pygame.locals import *  5 from sys import exit  6 from random import *  7   8 __des__ = '''  9     Name: 10         PyMusic 11 ''' 12 __version__ = '2.0' 13 __author__ = {'name' : 'Hongten', 14               'mail' : 'hongtenzone@foxmail.com', 15               'blog' : 'http://.cnblogs.com/hongten', 16               'version' : __version__} 17  18 if not pygame.mixer: print('Warning, sound disabled!') 19 if not pygame.font: print('Warning, fonts disabled!') 20  21 pygame.init() 22  23 SCREEN_W = 580 24 SCREEN_H = 450 25 SCREEN_DEFAULT_SIZE = (SCREEN_W, SCREEN_H + 20) 26 VOLUME = 5 27 IMAGE_START_POS = (60, 60) 28 IMAGE_END_POS = (245, 245) 29 CIRCLES_POS = [(85, 350), (150, 350), (215, 350), (280, 350), (555, 425)] 30 CIRCLR_R = 25 31 CIRCLR_W = 3 32  33 PLAY_FLAG = True 34 PREFER_FLAG = True 35  36  37 DATA_DIR = 'data' 38 IMAGE_DIR = 'image' 39 BG_IMAGE_DIR = 'image//background' 40 FONT_DIR = 'font' 41 SOUND_DIR = 'sound' 42  43 BG_IMAGE = 'bg.jpg' 44 AUTHOR_IMAGE = 'author.png' 45 #size:(240*240) 46 BGS = [] 47 SONG_FLAG = 0 48 SONGS = [('1.OGG', 'You Raise Me Up', 'WestLife', '1.png'), 49          ('2.OGG', '不完整的旋律', '王力宏', '2.png'), 50          ('3.OGG', 'A Place Nearby' , 'Lene Marlin', '3.png'), 51          ('4.OGG', 'Just Give Me A Reason' , 'Pink', '4.png'), 52          ('5.OGG', '' , '张国荣', '5.png'), 53          ('6.OGG', '大城小爱' , '王力宏', '6.png'), 54          ('7.OGG', '聊天' , '郭静', '7.png')] 55 westlift = 'westlife.png' 56  57 VOLUME_POINTS = [] 58 VOLUME_POINTS_START = [] 59 VOLUME_RECT_COLORS = [] 60 for p in range(170, 250, 7): 61     VOLUME_POINTS.append([SCREEN_W - p,SCREEN_H + 20]) 62 for ps in range(175, 250, 7): 63     VOLUME_POINTS_START.append([SCREEN_W - ps, SCREEN_H]) 64     VOLUME_RECT_COLORS.append((randint(0, 255), randint(0, 255), randint(0, 255))) 65  66 screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE, 0, 32) 67 bg = pygame.image.load(os.path.join(DATA_DIR, BG_IMAGE_DIR, BG_IMAGE)).convert() 68 author_image = pygame.image.load(os.path.join(DATA_DIR, IMAGE_DIR, AUTHOR_IMAGE)).convert() 69  70 SONG_ARRAY = [] 71 SONG_IMAGE = [] 72 for song in range(len(SONGS)): 73     SONG_ARRAY.append(pygame.mixer.Sound(os.path.join(DATA_DIR, SOUND_DIR, SONGS[song][0]))) 74     SONG_IMAGE.append(pygame.image.load(os.path.join(DATA_DIR, IMAGE_DIR, SONGS[song][3])).convert()) 75  76 font = pygame.font.Font(os.path.join(DATA_DIR, FONT_DIR, 'TORK____.ttf'), 14) 77 font_song_title = pygame.font.Font(os.path.join(DATA_DIR, FONT_DIR, 'msyhbd.ttf'), 24) 78 font_song = pygame.font.Font(os.path.join(DATA_DIR, FONT_DIR, 'msyh.ttf'), 16) 79  80 def draw_picture_rect(): 81      #picture rect 82     pygame.draw.rect(screen, 83                      (255, 255, 255), 84                      Rect(IMAGE_START_POS, IMAGE_END_POS)) 85  86 def button_play(screen, color): 87     pygame.draw.circle(screen, color, CIRCLES_POS[0], CIRCLR_R, CIRCLR_W) 88     points=[(77,340),(77,360),(95,350)] 89     pygame.draw.polygon(screen,color,points) 90  91 def button_stop(screen, color): 92     pygame.draw.circle(screen, color, CIRCLES_POS[0], CIRCLR_R, CIRCLR_W) 93     pygame.draw.rect(screen, 94                      color, 95                      Rect(77, 340, 5, 23 )) 96     pygame.draw.rect(screen, 97                      color, 98                      Rect(88, 340, 5, 23 )) 99 100 def button_perfer(screen, color):101     pygame.draw.circle(screen, color, CIRCLES_POS[1], CIRCLR_R, CIRCLR_W)102     points=[(138,340),(162,340),(150,363)]103     pygame.draw.polygon(screen,color,points)104 105 def button_del(screen, color):106     pygame.draw.circle(screen, color, CIRCLES_POS[2], CIRCLR_R, CIRCLR_W)107     pygame.draw.circle(screen, color, (215, 340), 6, 3)108     pygame.draw.rect(screen,109                      color,110                      Rect(200, 340, 30, 6 ))111     pygame.draw.rect(screen,112                      color,113                      Rect(204, 340, 3, 20 ))114     pygame.draw.rect(screen,115                      color,116                      Rect(210, 340, 3, 20 ))117     pygame.draw.rect(screen,118                      color,119                      Rect(217, 340, 3, 20 ))120     pygame.draw.rect(screen,121                      color,122                      Rect(223, 340, 3, 20 ))123     pygame.draw.rect(screen,124                      color,125                      Rect(204, 360, 22, 5 ))126 127 def button_next_song(screen, color):128     pygame.draw.circle(screen, color, CIRCLES_POS[3], CIRCLR_R, CIRCLR_W)129     points_one =[(270,343),(270,357),(277,350)]130     points_two =[(277,343),(277,357),(284,350)]131     pygame.draw.polygon(screen,color,points_one)132     pygame.draw.polygon(screen,color,points_two)133     pygame.draw.rect(screen,134                      color,135                      Rect(284, 343, 5, 15 ))136 137 def button_authon_image(screen, color):138      pygame.draw.circle(screen, color, CIRCLES_POS[4], CIRCLR_R, CIRCLR_W)139      pygame.draw.rect(screen,140                      (255, 255, 255),141                      Rect(418, 248, 144, 154 ))142      screen.blit(author_image, (420, 250))143      luck = font_song_title.render('Yes, You are Luck :-)', True, (255,165,10))144      screen.blit(luck, (280, 416))145 146 def listener():147     global PLAY_FLAG148     global PREFER_FLAG149     x, y = pygame.mouse.get_pos()150     color = (255,255,25)151     color_red = (230, 0, 0)152     for index in range(len(CIRCLES_POS)):153         p_x = (CIRCLES_POS[index][0] - x)**2154         p_y = (CIRCLES_POS[index][1] - y)**2155         p_r = (CIRCLR_R)**2156         if (p_x + p_y <= p_r):157             if index == 0 and PLAY_FLAG:158                 button_stop(screen, color)159             elif index == 0 and not PLAY_FLAG:160                 button_play(screen, color)161             elif index == 1 and PREFER_FLAG:162                 button_perfer(screen, color)163             elif index == 1 and not PREFER_FLAG:164                 button_perfer(screen, color_red)165             elif index == 2:166                 button_del(screen, color)167             elif index == 3:168                 button_next_song(screen, color)169             elif index == 4:170                 button_authon_image(screen, color)171 172 def mouse_down_listener(sound):173     global PLAY_FLAG174     global PREFER_FLAG175     global SONG_FLAG176     x, y = pygame.mouse.get_pos()177     for index in range(len(CIRCLES_POS)):178         p_x = (CIRCLES_POS[index][0] - x)**2179         p_y = (CIRCLES_POS[index][1] - y)**2180         p_r = (CIRCLR_R)**2181         if (p_x + p_y <= p_r):182             if index == 0 and PLAY_FLAG:183                 #print('stop now......')184                 sound.stop()185                 PLAY_FLAG = False186             elif index == 0 and not PLAY_FLAG:187                 #print('play now ... ... ... ...')188                 sound.play(0)189                 PLAY_FLAG = True190             elif index == 1 and PREFER_FLAG:191                 print('perfer song....<<', SONGS[SONG_FLAG][1], '>>')192                 PREFER_FLAG = False193             elif index == 1 and not PREFER_FLAG:194                 print('not perfer song... <<', SONGS[SONG_FLAG][1], '>>')195                 PREFER_FLAG = True196             elif index == 2:197                 sound.stop()198                 print('delete song....<<', SONGS[SONG_FLAG][1], '>>')199                 if SONG_FLAG > 0:200                     SONGS.pop(SONG_FLAG)201                     SONG_IMAGE.pop(SONG_FLAG)202                     SONG_ARRAY.pop(SONG_FLAG)203                     if SONG_FLAG >= len(SONGS) - 1:204                         SONG_FLAG -= 1205                 else:206                     print('This is the last song.')207             elif index == 3:208                 sound.stop()209                 if SONG_FLAG < len(SONGS) - 1:210                     SONG_FLAG += 1211                 else:212                     SONG_FLAG = 0213                 #print('next song....')214                 215 def draw_button(sound):216     color = (255,255,255)217     color_red = (230, 0, 0)218     #play or stop219     if PLAY_FLAG:220         sound.play(0)221         button_stop(screen, color)222     elif not PLAY_FLAG:223         button_play(screen, color)224     #perfer song225     if PREFER_FLAG:226         button_perfer(screen, color)227     elif not PREFER_FLAG:228         button_perfer(screen, color_red)229     #delete230     button_del(screen, color)231     #next song232     button_next_song(screen, color)233 234 def draw_volume_info():235     #the background of volume236     pygame.draw.rect(screen,237                      (255, 255, 255),238                      Rect((VOLUME_POINTS_START[-1][0],239                            VOLUME_POINTS_START[-1][1]),240                           (VOLUME_POINTS[-10][0] - VOLUME_POINTS_START[-1][0],241                            20)))242     #the size of volume243     for v in range(VOLUME+1):244         if v > 0:245             pygame.draw.rect(screen,246                              VOLUME_RECT_COLORS[v],247                              Rect((VOLUME_POINTS_START[-v][0],248                                    VOLUME_POINTS_START[-v][1]),249                                   (VOLUME_POINTS[-v][0] - VOLUME_POINTS_START[-v][0],250                                    20)))251 252 def draw_song_title():253     title = font_song_title.render(SONGS[SONG_FLAG][1], True, (255,165,0))254     songer = font_song.render(SONGS[SONG_FLAG][2], True, (255, 255, 255))255     screen.blit(title, (320, 60))256     screen.blit(songer, (320, 110))257 258 def draw_state_bar_info():259     pygame.draw.line(screen, (165,42,42),(0, SCREEN_H), (SCREEN_W, SCREEN_H))260     #music info261     music_info = 'AllSongs: ' + str(len(SONGS)) +'     Current: ' + str(SONG_FLAG + 1)262     text = font.render(music_info, True, (255,255,255))263     screen.blit(text, (0, SCREEN_H+5))264     #author into265     author_info = font.render('hongtenzone@foxmail.com', True, (255,255,255))266     screen.blit(author_info, (SCREEN_W - 160, SCREEN_H+5))267     #volume info268     volume_text = font.render('Volume: ' + str(VOLUME), True, (255, 255, 255))269     screen.blit(volume_text, (SCREEN_W - 310, SCREEN_H+5))270     271 while True:272     273     screen.blit(bg, (0, 0))274     pic = SONG_IMAGE[SONG_FLAG]275     bg_sound = SONG_ARRAY[SONG_FLAG]276     bg_sound.set_volume(0.1 * VOLUME)277     draw_button(bg_sound)278     listener()279     for event in pygame.event.get():280         if event.type == QUIT:281             bg_sound.stop()282             exit()283         elif event.type == KEYDOWN:284             if event.key == K_UP:285                 pass286             elif event.key == K_DOWN:287                 pass288             elif event.key == K_LEFT:289                 if VOLUME > 0:290                     VOLUME -= 1291             elif event.key == K_RIGHT:292                 if VOLUME <= 9:293                     VOLUME += 1294         elif event.type == MOUSEMOTION:295             pass296                     297         elif event.type == MOUSEBUTTONDOWN:298             pressed_array = pygame.mouse.get_pressed()299             for index in range(len(pressed_array)):300                 if pressed_array[index]:301                     if index == 0: #When the LEFT button down302                         mouse_down_listener(bg_sound)303 304     #picture rect305     draw_picture_rect()306     #volume information307     draw_volume_info()308     #state bar information309     draw_state_bar_info()310     #song title311     draw_song_title()312     313     screen.blit(pic, (62.5, 62.5))314     pygame.display.update()

你在运行的时候,肯恩会遇到一些问题,系统找不到音乐和图片....

这个由于文件中的音乐,字体和图片有一点大,所以我把图片和音乐删掉..你可以进行添加即可

还请大家给我想想办法,我好上传源文件给大家伙下载...


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-28153-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 笹沼尧罗
        笹沼尧罗

        这还是跟排队来北京巡逻区别很大的

      • 万立博
        万立博

        恶心

      • 黄钰龙
        黄钰龙

        肯定是这只学生放入去的

      热点图片
      拼命载入中...