NullPointerException bei GainControl

Peter Clark

Grünschnabel
Hallo zusammen,
ich habe ein Problem mit derm Fava Media Framework(JMF).
Und zwar will ich in meiner Applikation die Lautstärke verändern mit Hilfe der
GainControl. Aber wenn ich über getGainControl mir diese "geholt" habe und mit dieser z.B. getMute Abfrage kommt immer eine NullPointerException!
Ich schicke euch mal Code-Ausschnitte mit!


Code:
package controls;
import gui.MediaPlayer_GUI;
import java.io.File;
import java.io.IOException;
import javax.media.CannotRealizeException;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.GainControl;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;

public class CreateMediaPlayer implements ControllerListener{
	
	private int actualSelected;
	private GainControl gain;
	
	public File makeMediaPlayer(int index) {
		actualSelected=index;
		File fileTemp = (File) MediaPlayer_GUI.getListModel().get(index);
		//MediaPlayer_GUI.getMediaPlayer() liefert den aktuellen Player
		if (MediaPlayer_GUI.getMediaPlayer()!=null) MediaPlayer_GUI.getMediaPlayer().stop();
			try {
				
				MediaPlayer_GUI.setMediaPlayer(Manager.createRealizedPlayer(new MediaLocator("file:/" + fileTemp.toString())));
				MediaPlayer_GUI.getMediaPlayer().addControllerListener((ControllerListener) this);
				MediaPlayer_GUI.getMediaPlayer().realize();
				MediaPlayer_GUI.getMediaPlayer().prefetch();
				gain = MediaPlayer_GUI.getMediaPlayer().getGainControl();
				MediaPlayer_GUI.getMediaPlayer().start();				
				//Hier kommt eine NullPointerException bei gain.getMute() warum?
				System.out.println(gain.getMute());
				return fileTemp;
			} catch (NoPlayerException e1) {
				System.err.println(e1.getMessage());
			} catch (IOException e3) {
				System.err.println(e3.getMessage());
			} catch (CannotRealizeException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		return null;
	}
		
	public void controllerUpdate(ControllerEvent e) {
		if (e instanceof EndOfMediaEvent) {
			int next = MediaPlayer_GUI.nextInTheList(actualSelected);
			File file = makeMediaPlayer(next);
			MediaPlayer_GUI.setActualTitle(file.getName());
		}
	}
}


Gruß

Peter
 
Da kommt eine NullpointerException weil gain == null ist.

Wieso es null ist sagt dir die Methode:
getGainControl();

die für uns ja nicht einsichtbar ist.
 
NullPointerException getGainControl

Hallo,
die getGainControl()-Methode ist keine Methode von mir, sondern von den Java Media Framework.
Vielleicht kannst Du wenn Du dich mir helfen, wenn Du dich mit dem JMF auskennst, wie man die Lautstärke von audioFiles ändern kann, was bei mir irgendwie nicht klappen will!

Mit freundlichen Gruß

Peter
 
JavaDoc sagt dazu:
--------------------------------------------------------
Gets the object for controlling this Player's audio gain. If this player does not have a GainControl, getGainControl returns null. For example, getGainControl might return null if the Player does not play audio data.
---------------------------------------------------------
 
Zurück