![]() |
.wav file not playing in python .exe program - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: .wav file not playing in python .exe program (/thread-27858.html) |
.wav file not playing in python .exe program - ose - Jun-24-2020 I have tried simpleaudio, playsound, and winsound in my program to be able to include a small wave file. Each one of these works fine when running my script in Pycharm. The problem is when I use 'pyinstaller --onefile' to make the self-executable standalone program (exe). I then will just hear a 'windows' ring instead of the wave file. I'd appreciate help on this. Paul Heres the code that I am constantly editing, I'm a beginner. The program works well(except for the wave file). I've commented out simpleaudio and playsound because I most recently tried winsound. this is just a practice copy so its full of comments and probably looks bad. #import simpleaudio as sa #from playsound import playsound import os from chart import chart from BreakerZones import BreakerZones import winsound #import time import sys import colorama import yaml # to print the nested_lookup results(n) on separate lines from nested_lookup import nested_lookup, get_all_keys # importing 2 items from nested_lookup from colorama import Fore, Back, Style colorama.init(autoreset=True) # If you don't want to print Style.RESET_ALL all the time, # reset automatically after each print statement with True print(colorama.ansi.clear_screen()) print('\n'*4) # prints a newline 4 times #winsound.PlaySound('bell fade', winsound.SND_FILENAME) print(Fore.MAGENTA + ' Arriving-' + Fore.GREEN + ' *** BREAKERVILLE USA ***') def resource_path(relative_path): """ Get absolute path to resource, works for dev and for PyInstaller """ base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) return os.path.join(base_path, relative_path) def main(): print('\n' * 2) print(Fore.BLUE + ' Breaker Numbers and Zones') k = get_all_keys(BreakerZones) # raw amount of keys even repeats , has quotes new_l = [] # eliminate extra repeating nested keys for e in k: # has quotes if e not in new_l and sorted(e) not in new_l: # new_l.append(e) # print() new_l.sort() # make alphabetical newer_l = ('%s' % ', '.join(map(str, new_l)).strip("' ,")) # remove ['%s'] brackets so they don't show up when run print(' ', yaml.dump(newer_l, default_flow_style=False)) # strip("' ,") or will see leading "' ," in output print(Fore.BLUE + ' ENTER A BREAKER # OR ZONE', Fore.GREEN + ': ', end='') i = input().strip().lower() # these lines is workaround for the colorama print() # user input() issue of 'code' appearing in screen output if i in k: n = (nested_lookup(i, BreakerZones, wild=False, with_keys=False)) # wild=True means key not case sensitive, print(yaml.dump(n, default_flow_style=False)) # 'with_keys' returns values + keys also # for key, value in n.items(): eliminated by using yaml # print(key, '--', value) eliminated by using yaml else: print(Fore.YELLOW + ' Typo,' + Fore.GREEN + ' try again') main() print() print(Fore.GREEN + ' Continue? Y or N: C for breaker chart : ', end='') # see comments ENTER A BREAKER ans = input().strip().lower() # strip() removes any spaces before or after user input if ans == 'c': chart() print() print(Fore.GREEN + ' Continue? Y or N : ', end='') ans = input().strip().lower() # strip() removes any spaces before or after user input if ans == 'y': # shorter version 'continue Y or N' after printing breaker chart main() else: print() print(Fore.MAGENTA + ' Departing -' + Fore.GREEN + ' *** BREAKERVILLE ***') ''' filename = 'train whistle.wav' wave_obj = sa.WaveObject.from_wave_file(filename) play_obj = wave_obj.play() play_obj.wait_done() # Wait until sound has finished playing''' #playsound('train whistle.wav') winsound.PlaySound('train whistle', winsound.SND_FILENAME) #time.sleep(2) # delay to exit program sys.exit() elif ans != 'y': print() print(Fore.MAGENTA + ' Good Day -' + Fore.GREEN + ' *** BREAKERVILLE ***') '''filename = 'train whistle.wav' wave_obj = sa.WaveObject.from_wave_file(filename) play_obj = wave_obj.play() play_obj.wait_done() # Wait until sound has finished playing''' #playsound('train whistle.wav') winsound.PlaySound('train whistle', winsound.SND_FILENAME) #time.sleep(2) # delay to exit program sys.exit() else: main() main() |