J2ME background music
I would like to play background music i开发者_如何学运维n 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.
精彩评论