Python Forum
[Tkinter] Button Plays Random .MP3 File From Folder
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] Button Plays Random .MP3 File From Folder
#3
You will need to give pygame mixer the full path to the file. Something like this :

randomfile = random.choice(os.listdir("D:/Desktop/Plugin"))
full_file_name = 'D:/Desktop/Plugin/' + randomfile
pygame.mixer.music.load (full_file_name)
Also loop=0 is not valid. The correct syntax is :

pygame.mixer.music.play(0)
This worked great on my system :

from tkinter import *
import pygame
import os
import random

root = Tk()
root.title('Hello')
root.geometry('500x400')


pygame.init()
pygame.mixer.init()
path = '/home/BashBedlam/test/'
randomfile = random.choice(os.listdir("test"))
filename = path + randomfile
def play():
	pygame.mixer.music.load(filename)
	pygame.mixer.music.play(0)

startButton = Button(root, text="Start", font=("Helvetica", 32), command=play)
startButton.pack(pady=20)

def stop():
	pygame.mixer.music.stop()

stopButton = Button(root, text="Stop", command=stop)
stopButton.pack(pady=20)

root.mainloop()
Reply


Messages In This Thread
RE: Button Plays Random .MP3 File From Folder - by BashBedlam - Feb-05-2021, 02:19 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [PySimpleGui] How to alter mouse click button of a standard submit button? skyerosebud 3 5,087 Jul-21-2019, 06:02 PM
Last Post: FullOfHelp
  [Tkinter] how to input a random entry with each button press? nadavrock 1 6,495 Jun-17-2019, 05:28 AM
Last Post: Yoriz
  [WxPython] Any dialog that allow user to select file OR folder? buran 3 4,309 Apr-03-2019, 06:33 PM
Last Post: Yoriz
  Simple Button click on image file to create action? jpezz 4 7,035 Mar-27-2019, 10:08 PM
Last Post: jpezz
  Python, Tkinter. How to search a specific file in a folder Roo 3 3,495 Feb-13-2019, 10:41 AM
Last Post: Larz60+
  simple file button Epilepsy 1 2,582 May-22-2018, 06:22 AM
Last Post: Barrowman

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020