Cách dừng mô-đun playound trong python
Tóm lược. Phát một bài hát âm thanh mp3 bằng mã python nghe có vẻ thú vị. Có thể phát mp3 bằng Python không? Show Không có cơ chế sẵn có để chạy tệp phương tiện (chẳng hạn như mp3) trong Python, nhưng có nhiều thư viện của bên thứ 3 như vlc hoặc pygame sử dụng để chúng tôi có thể phát tệp âm thanh trong Python Phát mp3 bằng Mô-đun VLC PythonChúng tôi sẽ sử dụng mô-đun VLC Python để phát tệp âm thanh vì nó dễ dàng và cung cấp nhiều tính năng ngoài việc chỉ phát và dừng Vì vậy, hãy bắt đầu bằng cách cài đặt vlc. mô-đun py bằng lệnh sau trong terminal
Sau khi cài đặt ta có thể import module
Ví dụ. Dòng lệnh Python
Ví dụ. IDE Python
Trong dòng lệnh python, nhạc sẽ không dừng cho đến khi chúng ta thực hiện lệnh tiếp theo là 4, trong khi trong python IDE, chúng ta sẽ không nghe thấy bài hát đang phát vì quá trình thực thi chương trình hoàn tất trong tích tắc của giâyDo đó để nghe được âm thanh mp3 qua mã viết bằng Python Ide, chúng ta phải tạm dừng thực thi chương trình bằng phương thức 5Nó yêu cầu một đối số - đường dẫn đến tệp có âm thanh bạn muốn phát. Đây có thể là một tệp cục bộ hoặc một URL Có một đối số thứ hai tùy chọn, khối, được đặt thành True theo mặc định. Đặt nó thành Sai làm cho chức năng chạy không đồng bộ Trên Windows, sử dụng Windll. chiến thắng. WAVE và MP3 đã được thử nghiệm và được biết là hoạt động. Các định dạng tệp khác cũng có thể hoạt động Trên OS X, sử dụng AppKit. NSSound. WAVE và MP3 đã được thử nghiệm và được biết là hoạt động. Nói chung, bất cứ thứ gì QuickTime có thể phát, thì âm thanh cũng có thể phát, dành cho OS X Trên Linux, sử dụng GStreamer. Được biết là hoạt động trên Ubuntu 14. 04 và hệ điều hành sơ cấp Loki. Tôi hy vọng bất kỳ bản phân phối Linux nào có trải nghiệm máy tính để bàn gnome tiêu chuẩn sẽ hoạt động Nếu bạn muốn các bản phân phối Linux khác (hoặc bất kỳ HĐH nào khác) hoạt động, hãy gửi PR bổ sung hỗ trợ cho nó, nhưng vui lòng đảm bảo rằng nó vượt qua các bài kiểm tra (xem bên dưới) Trò chơi điện tử nhằm mục đích đưa người chơi vào một loại thực tế ảo. Chúng tôi làm điều này chủ yếu bằng hình ảnh, nhưng nó có thể tạo ra sự khác biệt lớn và là một cải tiến lớn cho trò chơi của bạn nếu bạn thêm cả âm thanh Âm thanh thường có hai dạng chính. Tiếng ồn "xung quanh" hoặc do hành động của người chơi. Với PyGame, bạn có hai lựa chọn. Âm nhạc hoặc Âm thanh. Nhạc sẽ chỉ phát ở chế độ nền khi bạn gọi nó và âm thanh sẽ phát bất cứ lúc nào bạn gọi chúng để phát. Chúng tôi sẽ đề cập đến cả hai ở đây bằng cách thêm cả hai vào trò chơi hiện tại của chúng tôi. Đầu tiên, chúng tôi sẽ sử dụng một giai điệu đơn giản từ YouTube làm nhạc cho trò chơi của mình và sau đó chúng tôi sẽ thêm âm thanh "va chạm" mà chúng tôi sẽ phát nếu chúng tôi va phải bất kỳ khối nào Để bắt đầu, hãy tạo ra âm thanh crash_sound = pygame.mixer.Sound("crash.wav") Ở trên sẽ chỉ định sự cố. wav để phát khi chúng tôi gọi crash_sound trong chức năng phát âm thanh của PyGame. Chú ý tập tin là. làn sóng. PyGame có thể xử lý. mp3 cũng vậy, nhưng nó hơi trục trặc và đôi khi sẽ hoạt động và đôi khi nó không hoạt động. Để đặt cược an toàn nhất, hãy đi với. làn sóng Bây giờ chúng ta đã biết cách gọi âm thanh, làm thế nào chúng ta có thể tạo ra âm nhạc? pygame.mixer.music.load('jazz.wav') pygame.mixer.music.play(-1) Đoạn mã trên sẽ phát tệp nhạc vô thời hạn (mặc dù bạn có thể gọi nó để dừng). -1 báo hiệu PyGame chỉ phát mãi mãi, nhưng nếu bạn đặt số 5 vào đó, thì nhạc sẽ phát một lần và thêm 5 lần nữa Bây giờ, chúng tôi muốn âm nhạc phát, và đúng như vậy, sau đó chúng tôi cần âm thanh va chạm để phát khi va chạm. Ngoài ra, chúng tôi muốn dừng âm nhạc nếu trường hợp này xảy ra Vì vậy, trong chức năng sụp đổ của chúng tôi def crash(): #################################### pygame.mixer.Sound.play(crash_sound) pygame.mixer.music.stop() #################################### largeText = pygame.font.SysFont("comicsansms",115) TextSurf, TextRect = text_objects("You Crashed", largeText) Ở trên, chúng tôi đang gọi PyGame để phát crash_sound, cũng như dừng nhạc. Điều này có nghĩa là âm nhạc sẽ bắt đầu lại nếu trò chơi được chơi lại Bây giờ, điều khác duy nhất mà chúng ta có thể muốn làm là tìm hiểu cách tạm dừng/bỏ tạm dừng nhạc khi người chơi tạm dừng trò chơi. Điều này là đủ dễ dàng Trong chức năng tạm dừng của chúng tôi def paused(): ############ pygame.mixer.music.pause() ############# Và sau đó tất nhiên chúng ta phải bỏ tạm dừng nó def unpause(): global pause ################# pygame.mixer.music.unpause() ################# pause = False Mã PyGame đầy đủ import pygame import time import random pygame.init() ############# crash_sound = pygame.mixer.Sound("crash.wav") ############# display_width = 800 display_height = 600 black = (0,0,0) white = (255,255,255) red = (200,0,0) green = (0,200,0) bright_red = (255,0,0) bright_green = (0,255,0) block_color = (53,115,255) car_width = 73 gameDisplay = pygame.display.set_mode((display_width,display_height)) pygame.display.set_caption('A bit Racey') clock = pygame.time.Clock() carImg = pygame.image.load('racecar.png') gameIcon = pygame.image.load('carIcon.png') pygame.display.set_icon(gameIcon) pause = False #crash = True def things_dodged(count): font = pygame.font.SysFont("comicsansms", 25) text = font.render("Dodged: "+str(count), True, black) gameDisplay.blit(text,(0,0)) def things(thingx, thingy, thingw, thingh, color): pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh]) def car(x,y): gameDisplay.blit(carImg,(x,y)) def text_objects(text, font): textSurface = font.render(text, True, black) return textSurface, textSurface.get_rect() def crash(): #################################### pygame.mixer.Sound.play(crash_sound) pygame.mixer.music.stop() #################################### largeText = pygame.font.SysFont("comicsansms",115) TextSurf, TextRect = text_objects("You Crashed", largeText) TextRect.center = ((display_width/2),(display_height/2)) gameDisplay.blit(TextSurf, TextRect) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() button("Play Again",150,450,100,50,green,bright_green,game_loop) button("Quit",550,450,100,50,red,bright_red,quitgame) pygame.display.update() clock.tick(15) def button(msg,x,y,w,h,ic,ac,action=None): mouse = pygame.mouse.get_pos() click = pygame.mouse.get_pressed() if x+w > mouse[0] > x and y+h > mouse[1] > y: pygame.draw.rect(gameDisplay, ac,(x,y,w,h)) if click[0] == 1 and action != None: action() else: pygame.draw.rect(gameDisplay, ic,(x,y,w,h)) smallText = pygame.font.SysFont("comicsansms",20) textSurf, textRect = text_objects(msg, smallText) textRect.center = ( (x+(w/2)), (y+(h/2)) ) gameDisplay.blit(textSurf, textRect) def quitgame(): pygame.quit() quit() def unpause(): global pause pygame.mixer.music.unpause() pause = False def paused(): ############ pygame.mixer.music.pause() ############# largeText = pygame.font.SysFont("comicsansms",115) TextSurf, TextRect = text_objects("Paused", largeText) TextRect.center = ((display_width/2),(display_height/2)) gameDisplay.blit(TextSurf, TextRect) while pause: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() button("Continue",150,450,100,50,green,bright_green,unpause) button("Quit",550,450,100,50,red,bright_red,quitgame) pygame.display.update() clock.tick(15) def game_intro(): intro = True while intro: for event in pygame.event.get(): #print(event) if event.type == pygame.QUIT: pygame.quit() quit() gameDisplay.fill(white) largeText = pygame.font.SysFont("comicsansms",115) TextSurf, TextRect = text_objects("A bit Racey", largeText) TextRect.center = ((display_width/2),(display_height/2)) gameDisplay.blit(TextSurf, TextRect) button("GO!",150,450,100,50,green,bright_green,game_loop) button("Quit",550,450,100,50,red,bright_red,quitgame) pygame.display.update() clock.tick(15) def game_loop(): global pause ############ pygame.mixer.music.load('jazz.wav') pygame.mixer.music.play(-1) ############ x = (display_width * 0.45) y = (display_height * 0.8) x_change = 0 thing_startx = random.randrange(0, display_width) thing_starty = -600 thing_speed = 4 thing_width = 100 thing_height = 100 thingCount = 1 dodged = 0 gameExit = False while not gameExit: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: x_change = -5 if event.key == pygame.K_RIGHT: x_change = 5 if event.key == pygame.K_p: pause = True paused() if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: x_change = 0 x += x_change gameDisplay.fill(white) things(thing_startx, thing_starty, thing_width, thing_height, block_color) thing_starty += thing_speed car(x,y) things_dodged(dodged) if x > display_width - car_width or x < 0: crash() if thing_starty > display_height: thing_starty = 0 - thing_height thing_startx = random.randrange(0,display_width) dodged += 1 thing_speed += 1 thing_width += (dodged * 1.2) if y < thing_starty+thing_height: print('y crossover') if x > thing_startx and x < thing_startx + thing_width or x+car_width > thing_startx and x + car_width < thing_startx+thing_width: print('x crossover') crash() pygame.display.update() clock.tick(60) game_intro() game_loop() pygame.quit() quit() Có 1 thử thách cho hướng dẫn này. Đăng ký +=1 để truy cập vào những thứ này, tải xuống video và không có quảng cáo. Có 2 bài kiểm tra/câu hỏi cho hướng dẫn này. Đăng ký +=1 để truy cập vào những thứ này, tải xuống video và không có quảng cáo. Đó là tất cả cho loạt thông tin cơ bản về PyGame. Bạn có thể chọn chủ đề khác từ Trang chủ Ngoài ra, bạn có thể xem sê-ri PyOpenGL, sử dụng OpenGL để tạo kết xuất 3D bằng PyGame. Hướng dẫn PyOpenGL Mô-đun Playsound trong Python là gì?Mô-đun playound là mô-đun đa nền tảng có thể phát các tệp âm thanh . Điều này không có bất kỳ phụ thuộc nào, chỉ cần cài đặt với pip trong virtualenv của bạn và chạy.
Có một mô-đun âm thanh trong Python không?playsound là một mô-đun Python cho phép người dùng phát âm thanh trong một dòng mã . Nó là một mô-đun đa nền tảng, là một chức năng duy nhất không có bất kỳ phụ thuộc nào để phát âm thanh và âm thanh. Ví dụ. từ playound nhập playound. |