Ich würde gerne Hintergrundmusik in meinem J2ME-Spiel abspielen. Wie kann ich diese Funktion programmieren?
Antworten
Zu viele Anzeigen?Sie haben eine ähnliche Frage unter Audio-Wiedergabe mit J2ME
Der Einfachheit halber habe ich einige Codes aus diesem Thread gepostet:
// 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 Bezug auf QuickRecipes Kommentar Chan sind MIDIs für Hintergrundmusik zu bevorzugen, da sie viel kleiner als WAVs sind und der primäre Nachteil von MIDIs, eine möglicherweise verzögerte Startzeit, beim Abspielen von Hintergrundmusik weniger ins Gewicht fällt als bei Soundeffekten wie Schüssen, die sofort abgespielt werden müssen. Was die Code-Änderungen angeht, so sind MIDIs und WAVs nur unterschiedliche kodierte Typen, ein generischer Player kann beide Typen abspielen, so dass die Code-Änderungen im Wesentlichen gleich Null sind.