The simplest thing to do is:
---------------------------------------
import pygame
from pygame.locals import *
pygame.init()
sound = pygame.mixer.Sound("bark.wav")
sound.play()
while pygame.mixer.get_busy():
pass
---------------------------------------
...because "pygame.locals" is everything you'll need: the keys module,
surfaces, sound, etc. This way you don't have to do one line of code for
every submodule you want to import:
--------------------------------
import pygame.key
import pygame.mixer
import pygame.draw
import pygame.image
import pygame.font
import pygame.mouse
--------------is = to:-------------------
from pygame.locals import *
-------------------------------------------
I recommend doing this. I've been programming many times and realized that
I hadn't imported all the necessary modules. Opps. Especially for
simplicity, use "from pygame.locals import *"
Anyway, about your question: Your first line, "pygame.mixer.init()" imports
pygame.mixer (you can't init a non-loaded module), and then inits it. Your
next line, "pygame.init()" inits all of the imported modules and pygame.
So, here's what your code is doing:
pygame.mixer.init() #imports pygame.mixer and inits pygame.mixer
pygame.init() #inits all imported modules and pygame. (This re-inits
pygame.mixer)
One way to check would be to change the first line:
-----------------------------
pygame.mixer.init()
-----becomes----------
import pygame.mixer
----------------------------
which will still work, but would not init the module, and so would be more
efficient.
Ian