Sounds In Python TKinter Program: "Focus" Control Between External Program Windows

Discussion in 'Programming' started by digital_reality, Aug 25, 2014.

  1. #1
    I have made a simple game that I want to add sound effects to. I have the short clips and can get them

    to work with the following command:

    import os
    os.startfile("filename")

    It plays fine, but the problem is that it plays the file(s) with windows media player: effectively

    taking the "focus" away from the main tk window (or any window associated with the game, for

    that matter).

    This is a problem because it takes away from the "flow/cohesion" of the game. I could just click

    back on the tk window and resume playing, but I have spent a good amount of time enabling key

    controls in my game(You can play the whole game with only the keyboard).

    When each sound effect is played, the focused window is windows media player and whatever

    keyboard input that is received is assigned to the newly opened program. Does anyone have any

    solution of what I could do to address this?

    I have identified several possible approches for a solution:
    (1) Use Python modules for sound (e.g. winsound)
    (2) Create multiple threads
    (3) Search for method(s) on how to refocus the window (e.g. "window.grab_set()" method..??)
    (4) Several program can be implemented (e.g. Pymedia, Pygame, PyAudio, Pyglet, etc.)

    I think one of the main focuses here is that I may/may not want to use an external library for

    sound playing? How could I embed these sound files(mostly .mp3, some .wav) in my program

    without running a separate program to play them?

    Any thoughts from personal experience and/or subjects that you can refer me to study up on

    would be greatly appreciated, thanks.
     
    digital_reality, Aug 25, 2014 IP
  2. Helge Sverre

    Helge Sverre Prominent Member Affiliate Manager

    Messages:
    840
    Likes Received:
    99
    Best Answers:
    2
    Trophy Points:
    305
    Digital Goods:
    2
    #2
    The only way to include sound in your program would be to use an audio library, I don't know which one is the best, but opening a sound in an external player every time a sound is present is not a viable option.
    Maybe the sound should also be played in its own thread?
     
    Helge Sverre, Aug 28, 2014 IP