com.badlogic.gdx.audio.Music.java Source code

Java tutorial

Introduction

Here is the source code for com.badlogic.gdx.audio.Music.java

Source

/*******************************************************************************
 * Copyright 2011 See AUTHORS file.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.badlogic.gdx.audio;

import com.badlogic.gdx.Application;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Audio;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Disposable;

/** <p>
 * A Music instance represents a streamed audio file. The interface supports pausing, resuming
 * and so on. When you are done with using the Music instance you have to dispose it via the {@link #dispose()} method.
 * </p>
 * 
 * <p>
 * Music instances are created via {@link Audio#newMusic(FileHandle)}.
 * </p>
 * 
 * <p>
 * Music instances are automatically paused and resumed when an {@link Application} is paused or resumed. See
 * {@link ApplicationListener}.
 * </p>
 * 
 * <p>
 * <b>Note<b>: any values provided will not be clamped, it is the developer's responsibility to do so
 * </p>
 * 
 * @author mzechner */
public interface Music extends Disposable {
    /** Starts the play back of the music stream. In case the stream was paused this will resume the play back. In case the music
     * stream is finished playing this will restart the play back. */
    public void play();

    /** Pauses the play back. If the music stream has not been started yet or has finished playing a call to this method will be
     * ignored. */
    public void pause();

    /** Stops a playing or paused Music instance. Next time play() is invoked the Music will start from the beginning. */
    public void stop();

    /** @return whether this music stream is playing */
    public boolean isPlaying();

    /** Sets whether the music stream is looping. This can be called at any time, whether the stream is playing.
     * 
     * @param isLooping whether to loop the stream */
    public void setLooping(boolean isLooping);

    /** @return whether the music stream is playing. */
    public boolean isLooping();

    /** Sets the volume of this music stream. The volume must be given in the range [0,1] with 0 being silent and 1 being the
     * maximum volume.
     * 
     * @param volume */
    public void setVolume(float volume);

    /** @return the volume of this music stream. */
    public float getVolume();

    /** Sets the panning and volume of this music stream.
     * @param pan panning in the range -1 (full left) to 1 (full right). 0 is center position.
     * @param volume the volume in the range [0,1]. */
    public void setPan(float pan, float volume);

    /** Set the playback position in seconds. */
    public void setPosition(float position);

    /** Returns the playback position in seconds. */
    public float getPosition();

    /** Needs to be called when the Music is no longer needed. */
    public void dispose();

    /** Register a callback to be invoked when the end of a music stream has been reached during playback.
     * 
     * @param listener the callback that will be run. */
    public void setOnCompletionListener(OnCompletionListener listener);

    /** Interface definition for a callback to be invoked when playback of a music stream has completed. */
    public interface OnCompletionListener {
        /** Called when the end of a media source is reached during playback.
         * 
         * @param music the Music that reached the end of the file */
        public abstract void onCompletion(Music music);
    }
}