I will take a shot at this one
First off, did you know you can place whatever mp3 files you want in the music folder and HoI will play them? I myself have replaced all the music and it is working fine (not because I don't like the original music but because I wanted something different).
Now on to the nitty gritty. Go to the 'Hearts of Iron' directory. It is most likely in c:\Program Files\Strategy First. You will see a 'Music' folder. If you don't, you may need to reinstall or pull that folder off the CD and put it in the HoI directory. Before you look in the music directory, first off look for an icon called "HoI_Settings.exe". Double click this icon and a window will appear with some selectable options. Make sure the music setting is set to 'enabled'.
Now double-click on the 'Music' directory. You will see a bunch of mp3 files. They should all be named in a 'xxxxxx-xx.mp3' format (where x is a number). For example, one file is named '550051-01.mp3'. This is the flight of the valkyries song that plays everytime you start HoI.
You will also see in the music directory a file named 'music.txt'. This is the file that tells HoI which of the mp3 files you want it to play. If you had, let's say, 100 mp3 files in the music directory, you could only list one file in 'music.txt' and that is the only song HoI will play. If you don't see a music.txt file in the directory, HoI will not play music in game. You can edit 'music.txt' by opening it in notepad and just typing in the mp3 filenames and then saving it.
Did you ever change anything in your music directory? If you did you may have broken the music playing system. HoI is picky about how mp3 files are named and listed. However it is completely fixable by renaming files and/or editing the 'music.txt' file. Here are some items I have learned through trial and error (note that the rules I list below may not be ideal but they worked for me):
mp3 files are named 'xxxxxx-xx.mp3' as discussed above. the -xx part should be in sequential order (in other words, going from 01 to as high as 99).
the -01 file will be the first tune played when you start the game.... but after it plays that one time you may never hear it again. The xxxxxx part seems to be an identification number and can be whatever you want. What I did was start at 550051 and then increment by one for each new mp3 tune.
Example: lets say you are tired of the original HoI music and want HoI to play 3 of your favorite mp3 files. First I would rename the 3 mp3's to: '550051-01.mp3', '550052-02.mp3', and '550053-03.mp3', and move them into the music directory. Then I would open 'music.txt', cut all the text in it out, and type in: 550051-01
550052-02
550053-03 (NOTE: no .mp3 extensions in music.txt)
Then save it and start up HoI. When the game starts, it should be playing your 1st song. Then it will randomly select from the 2nd and 3rd songs over and over again.
Does HoI play music for a while and then suddenly stop and not play music for the rest of your game? If so, it is because HoI cannot find one of the listings in 'music.txt' as an mp3 file. Instead of crashing, HoI just disables music for that game session. You fix this problem by *carefully* checking your 'music.txt' file listings against the mp3 files in your music directory. They must be named exactly alike. Usually there is a typo somewhere.
Hopefully this info helped. If it didn't, post again and I will check back to see if I can help.