\hypertarget{classi2bpro_1_1player_1_1_player}{
\section{i2bpro.player.Player Klassenreferenz}
\label{classi2bpro_1_1player_1_1_player}\index{i2bpro::player::Player@{i2bpro::player::Player}}
}


Klassendiagramm für i2bpro.player.Player:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=182pt]{classi2bpro_1_1player_1_1_player__inherit__graph}
\end{center}
\end{figure}


Zusammengehörigkeiten von i2bpro.player.Player:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=315pt]{classi2bpro_1_1player_1_1_player__coll__graph}
\end{center}
\end{figure}
\subsection*{Öffentliche Methoden}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classi2bpro_1_1player_1_1_player_aa20e4c95821314749c68954fbd59f053}{play} (int id)  throws MalformedURLException, IOException, NoPlayerException     
\item 
void \hyperlink{classi2bpro_1_1player_1_1_player_a1dcc223b471ab799b3921b2929bd209e}{stop} ()
\item 
void \hyperlink{classi2bpro_1_1player_1_1_player_a40df8982d099090ed340aaf0dc4136a7}{pause} ()
\item 
\hyperlink{interfacei2bpro_1_1player_1_1_time_interface}{TimeInterface} \hyperlink{classi2bpro_1_1player_1_1_player_a9de8ac9034ff9cb799a4965802d5b2a4}{getPosition} ()
\item 
void \hyperlink{classi2bpro_1_1player_1_1_player_a533096f18f1a8648d771ed4a9acb1bf5}{setPosition} (int position)
\item 
void \hyperlink{classi2bpro_1_1player_1_1_player_abe09676d66b19631ec8d733003fcaad8}{setVolume} (int vol)
\item 
int \hyperlink{classi2bpro_1_1player_1_1_player_a52d93f9b3dd0dec047daa7c5d77e6b72}{getVolume} ()
\item 
void \hyperlink{classi2bpro_1_1player_1_1_player_a10af4d252e7523602b7c974d65621082}{toggleMute} ()
\item 
boolean \hyperlink{classi2bpro_1_1player_1_1_player_acf6fdc8e6be2a8cb9073507e1095abd7}{isMute} ()
\item 
synchronized void \hyperlink{classi2bpro_1_1player_1_1_player_a34d2a8bcc041cb7be6786a723d28bbfb}{controllerUpdate} (ControllerEvent event)
\item 
\hyperlink{interfacei2bpro_1_1player_1_1_time_interface}{TimeInterface} \hyperlink{classi2bpro_1_1player_1_1_player_ab71b6b3b266452cc0a254c91c4dba18d}{getDuration} ()
\item 
int \hyperlink{classi2bpro_1_1player_1_1_player_a141fdff79de04abc5aa6aad8805ef893}{getState} ()
\end{DoxyCompactItemize}
\subsection*{Öffentliche, statische Methoden}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{classi2bpro_1_1player_1_1_player}{Player} \hyperlink{classi2bpro_1_1player_1_1_player_a43a4bd98754ad43905777f9eb77d9b32}{getInstance} ()
\end{DoxyCompactItemize}


\subsection{Ausführliche Beschreibung}
Projektarbeit Informatik IIb -\/ Audioplayer \par
 Klasse: \hyperlink{classi2bpro_1_1player_1_1_player}{Player}

Die Klasse \hyperlink{classi2bpro_1_1player_1_1_player}{Player} beinhaltet alle Methoden die für den Audioplayer notwendig sind, um Audiodateien abzuspielen. Dafür werden Methoden zur Verfügung gestellt, welche eine Verbindung zum Java Media Framework herstellen. Die Klasse wurde nach der Singleton Pattern Methode geschrieben. Somit kann immer nur eine Instanz der Klasse erzeugt werden. Das Grundgerüst für das Singleton Pattern wurde dem Buch \char`\"{}Handbuch der Java Programmierung\char`\"{} von Guido Krüger und Thomas Stark entnommen.

\begin{DoxyVersion}{Version}
1.0.0 
\end{DoxyVersion}
\begin{DoxyDate}{Datum}
02.01.2010 
\end{DoxyDate}
\begin{DoxyAuthor}{Autor}
Jürgen Döffinger
\end{DoxyAuthor}
\begin{Desc}
\item[\hyperlink{bug__bug000001}{Fehler}]Es weren einige mp3-\/Dateien nicht abgespielt. Der Fehler scheint im Java Media Framework zu liegen.\end{Desc}


Definiert in Zeile 57 der Datei Player.java.



\subsection{Dokumentation der Elementfunktionen}
\hypertarget{classi2bpro_1_1player_1_1_player_a34d2a8bcc041cb7be6786a723d28bbfb}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!controllerUpdate@{controllerUpdate}}
\index{controllerUpdate@{controllerUpdate}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{controllerUpdate}]{\setlength{\rightskip}{0pt plus 5cm}synchronized void i2bpro.player.Player.controllerUpdate (
\begin{DoxyParamCaption}
\item[{ControllerEvent}]{ event}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_a34d2a8bcc041cb7be6786a723d28bbfb}
Die Methode controllerUpdate reagiert auf Events vom Controller des Players. 

Definiert in Zeile 437 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_ab71b6b3b266452cc0a254c91c4dba18d}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!getDuration@{getDuration}}
\index{getDuration@{getDuration}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{getDuration}]{\setlength{\rightskip}{0pt plus 5cm}{\bf TimeInterface} i2bpro.player.Player.getDuration (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_ab71b6b3b266452cc0a254c91c4dba18d}
Die Methode getDuration gibt die Gesamtspieldauer des Audiotitels zurück.

\begin{DoxyReturn}{Rückgabe}
\hyperlink{interfacei2bpro_1_1player_1_1_time_interface}{TimeInterface} 
\end{DoxyReturn}


Die MEthode getSeconds gibt die Gesamtspielzeit in Sekunden zurück.

\begin{DoxyReturn}{Rückgabe}
Gesamtabspieldauer in Sekunden
\end{DoxyReturn}
Die Methode getString gibt die Gesamtspieldauer als String in der Form hh:mm:ss zurück.

\begin{DoxyReturn}{Rückgabe}
Gesamtabspieldauer des Audiotitels in Form hh:mm:ss
\end{DoxyReturn}




Definiert in Zeile 541 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_a43a4bd98754ad43905777f9eb77d9b32}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!getInstance@{getInstance}}
\index{getInstance@{getInstance}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{getInstance}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Player} i2bpro.player.Player.getInstance (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classi2bpro_1_1player_1_1_player_a43a4bd98754ad43905777f9eb77d9b32}
Mit der Methode getInstance wird die nach dem Singleton Pattern Verfahren erzeugte Instanz an die aufrufende Methode zurückgegeben.

\begin{DoxyReturn}{Rückgabe}
Einzigste Instanz der Klasse \hyperlink{classi2bpro_1_1player_1_1_player}{Player}. 
\end{DoxyReturn}


Definiert in Zeile 105 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_a9de8ac9034ff9cb799a4965802d5b2a4}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!getPosition@{getPosition}}
\index{getPosition@{getPosition}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{getPosition}]{\setlength{\rightskip}{0pt plus 5cm}{\bf TimeInterface} i2bpro.player.Player.getPosition (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_a9de8ac9034ff9cb799a4965802d5b2a4}
Mit der MEthode getPosition kann die aktuelle Abspielposition erfragt werden.

\begin{DoxyReturn}{Rückgabe}
TimerInterface 
\end{DoxyReturn}


Die Methode getSeconds gibt die aktuelle Abspielposition in Sekunden zurück

\begin{DoxyReturn}{Rückgabe}
Abspielposition in Sekunden
\end{DoxyReturn}
Die Methode getString gibt die aktuelle Abspielposition als String in der Form hh:mm:ss zurück.

\begin{DoxyReturn}{Rückgabe}
Abspielpostion in Form hh:mm:ss
\end{DoxyReturn}




Definiert in Zeile 267 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_a141fdff79de04abc5aa6aad8805ef893}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!getState@{getState}}
\index{getState@{getState}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{getState}]{\setlength{\rightskip}{0pt plus 5cm}int i2bpro.player.Player.getState (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_a141fdff79de04abc5aa6aad8805ef893}
Die Methode getState gibt den Status des Players zurück.

\begin{DoxyReturn}{Rückgabe}
0 = Stop 1 = Play 2 = Pause 
\end{DoxyReturn}


Definiert in Zeile 616 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_a52d93f9b3dd0dec047daa7c5d77e6b72}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!getVolume@{getVolume}}
\index{getVolume@{getVolume}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{getVolume}]{\setlength{\rightskip}{0pt plus 5cm}int i2bpro.player.Player.getVolume (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_a52d93f9b3dd0dec047daa7c5d77e6b72}
Die Methode getVolume gibt die aktuell eingestellte Lautstärke zurück.

\begin{DoxyReturn}{Rückgabe}
Wert der aktuellen Lautstärke zwischen 0 und 100.
\end{DoxyReturn}
\begin{DoxyWarning}{Warnung}
Der im Status Stop zurückgegebene Wert muss nicht dem tatsächlichen Wert entsprechen. Allerdings wird der \hyperlink{classi2bpro_1_1player_1_1_player}{Player} beim starten einer Wiedergabe auf, den im Status Stop, ausgelesenen Lautstärkewert gesetzt. 
\end{DoxyWarning}


Definiert in Zeile 394 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_acf6fdc8e6be2a8cb9073507e1095abd7}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!isMute@{isMute}}
\index{isMute@{isMute}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{isMute}]{\setlength{\rightskip}{0pt plus 5cm}boolean i2bpro.player.Player.isMute (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_acf6fdc8e6be2a8cb9073507e1095abd7}
Die Methode isMute gibt den Wert des Attributs mute zurück. Somit kann festgestellt werden, ob Mute eingeschalten ist oder nicht.

\begin{DoxyReturn}{Rückgabe}
booleascher Ausdruck über den Zustand von Mute 
\end{DoxyReturn}


Definiert in Zeile 428 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_a40df8982d099090ed340aaf0dc4136a7}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!pause@{pause}}
\index{pause@{pause}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{pause}]{\setlength{\rightskip}{0pt plus 5cm}void i2bpro.player.Player.pause (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_a40df8982d099090ed340aaf0dc4136a7}
Die Methode pause unterbricht das Abspielen des Audiotitels. Dabei wird auf die Methode stop zurückgegriffen. Vorher wird allerdings das Attribute position auf die aktuelle Abspielposition gesetzt. Somit kann mithilfe der Methode play bzw. StartPlayer, die Wiedergabe an der entsprechenden Position fortgesetzt werden. 

Definiert in Zeile 237 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_aa20e4c95821314749c68954fbd59f053}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!play@{play}}
\index{play@{play}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{play}]{\setlength{\rightskip}{0pt plus 5cm}void i2bpro.player.Player.play (
\begin{DoxyParamCaption}
\item[{int}]{ id}
\end{DoxyParamCaption}
)  throws MalformedURLException, IOException, NoPlayerException     }}
\label{classi2bpro_1_1player_1_1_player_aa20e4c95821314749c68954fbd59f053}
Mit der Methode play wird das Abspielen eines Audiotitels gestartet. Die Methode prüft dabei den Status des Players und entscheidet daraufhin, ob eine Wiedergabe, welche pausiert, einfach nur fortgesetzt wird oder ob eine Wiedergabe im Status Stop neu gestartet wird. Die Entscheidung liegt auch bei der übergebenen Identifikationsnummer (id). Ist der \hyperlink{classi2bpro_1_1player_1_1_player}{Player} im Status Pause,aber wird nicht die gleiche id, wie zum Zeitpunkt als der \hyperlink{classi2bpro_1_1player_1_1_player}{Player} in den Status Pause ging, übergeben, so wird nicht fortgesetzt, sondern der \hyperlink{classi2bpro_1_1player_1_1_player}{Player} wird in den Status Stop gebracht und der neue Audiotitel gestartet.


\begin{DoxyParams}{Parameter}
{\em Identifikationsnummer} & des Audiotitels \\
\hline
\end{DoxyParams}


Definiert in Zeile 123 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_a533096f18f1a8648d771ed4a9acb1bf5}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!setPosition@{setPosition}}
\index{setPosition@{setPosition}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{setPosition}]{\setlength{\rightskip}{0pt plus 5cm}void i2bpro.player.Player.setPosition (
\begin{DoxyParamCaption}
\item[{int}]{ position}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_a533096f18f1a8648d771ed4a9acb1bf5}
Die Methode setPosition setzt den derzeit abgespielten Audiotrack auf die übergebene Position. Dabei wird natürlich der Status des Players berücksichtigt. Ist der \hyperlink{classi2bpro_1_1player_1_1_player}{Player} im Status Stop wird keine Positionierung vorgenommen. Im Status Play wird hingegen die Abspielposition entsprechend geändert und im Status Pause wird die übergebene Position im Attribut position gespeichert.


\begin{DoxyParams}{Parameter}
{\em new} & Abspielposition in Sekunden \\
\hline
\end{DoxyParams}


Definiert in Zeile 327 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_abe09676d66b19631ec8d733003fcaad8}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!setVolume@{setVolume}}
\index{setVolume@{setVolume}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{setVolume}]{\setlength{\rightskip}{0pt plus 5cm}void i2bpro.player.Player.setVolume (
\begin{DoxyParamCaption}
\item[{int}]{ vol}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_abe09676d66b19631ec8d733003fcaad8}
Mit der Methode setVolume wird die Lautstärke des Players eingestellt. Dazu ist ein Wert zwischen 0 und 100 zu übergeben. Dieser wird dann der logarithmischen Lautstärkekurve angepasst. Diese Anpassung wurde experimantell ermittelt.


\begin{DoxyParams}{Parameter}
{\em vol} & Lautstärkewert zwischen 0 und 100. \\
\hline
\end{DoxyParams}


Definiert in Zeile 350 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_a1dcc223b471ab799b3921b2929bd209e}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!stop@{stop}}
\index{stop@{stop}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{stop}]{\setlength{\rightskip}{0pt plus 5cm}void i2bpro.player.Player.stop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_a1dcc223b471ab799b3921b2929bd209e}
Mit der Methode stop kann das Abspielen eines Audiotitels abgebrochen werden. Dabei wird der \hyperlink{classi2bpro_1_1player_1_1_player}{Player} geschlossen und in den Status 0=STOP versetzt. 

Definiert in Zeile 218 der Datei Player.java.

\hypertarget{classi2bpro_1_1player_1_1_player_a10af4d252e7523602b7c974d65621082}{
\index{i2bpro::player::Player@{i2bpro::player::Player}!toggleMute@{toggleMute}}
\index{toggleMute@{toggleMute}!i2bpro::player::Player@{i2bpro::player::Player}}
\subsubsection[{toggleMute}]{\setlength{\rightskip}{0pt plus 5cm}void i2bpro.player.Player.toggleMute (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classi2bpro_1_1player_1_1_player_a10af4d252e7523602b7c974d65621082}
Die Methode toogleMute schaltet Mute ein oder aus. Ist das Attribute mute false, so wird die Lautstärke auf 0 gesetzt und das Attribut mute auf true. Ist das Attribute hingegen true, wird die Lautstärke auf den Wert des Attributs volume und das Attribut mute auf false gesetzt. 

Definiert in Zeile 406 der Datei Player.java.



Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:\begin{DoxyCompactItemize}
\item 
C:/Projekte/I2BPro/src/i2bpro/player/Player.java\end{DoxyCompactItemize}
