简体   繁体   中英

J2ME background music

I would like to play background music in my J2ME game. How can I code that function?

You have a similar question at Playing Audio with J2ME

For ease I have posted some code from that thread:

// loads the InputStream for the sound 
InputStream inputStream = this.getClass().getResourceAsStream( musicFile ); 

// create the standard Player 
musicPlayer = Manager.createPlayer( inputStream, musicEncoding ); 
musicPlayer.prefetch(); 

// add player listener to access sound events 
musicPlayer.addPlayerListener( this ); 

if( loopMusic ) 
{     
    // use the loop count method for infinite looping 
    musicPlayer.setLoopCount( -1 ); 
} 

// The set occurs twice to prevent sound spikes at the very  
// beginning of the sound. 
VolumeControl volumeControl =  
   (VolumeControl) musicPlayer.getControl( "VolumeControl" ); 
volumeControl.setLevel( curVolume ); 

// finally start the piece of music 
musicPlayer.start(); 

// set the volume once more 
volumeControl = (VolumeControl) musicPlayer.getControl( "VolumeControl" ); 
volumeControl.setLevel( curVolume ); 

// finally, delete the input stream to save on resources 
inputStream.close(); 
inputStream = null; 

In reference to QuickRecipes comment Chan, MIDIs are preferable to use for background music since they are much smaller than WAVs and the primary disadvantage of MIDIs, a possibly delay start time is less of an issue when playing background music than it would be for sound effects such as gunshots that need to play instantly. As far as code changes MIDIs and WAVs are just different encoded types, a generic Player can play either type so the code changes are essentially nill.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM