/*
* File : QT61AudioPlayer.java
* Created : 19-sep-2003 11:01
* By : fbusquets
*
* JClic - Authoring and playing system for educational activities
*
* Copyright (C) 2000 - 2005 Francesc Busquets & Departament
* d'Educacio de la Generalitat de Catalunya
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details (see the LICENSE file).
*/
package edu.xtec.jclic.media;
import edu.xtec.jclic.bags.MediaBag;
/**
*
* @author Francesc Busquets (fbusquets@xtec.cat)
* @version 13.08.29
*/
public class QT61AudioPlayer implements AudioPlayer{
quicktime.app.view.MoviePlayer player;
/** Creates new QT61AudioPlayer */
public QT61AudioPlayer(){
player=null;
}
public void play() {
if(player!=null){
stop();
try{
player.setTime(0);
quicktime.app.time.TaskAllMovies.addMovieAndStart();
player.getMovie().setActive(true);
player.setRate(1.0F);
} catch(Exception ex){
System.err.println("QT Exception:\n"+ex);
}
}
}
public boolean setDataSource(Object source) throws Exception {
close();
player=QT61Tools.getPlayer(source);
return player!=null;
}
public void stop() {
if(player!=null){
try{
player.setRate(0);
player.getMovie().setActive(false);
quicktime.app.time.TaskAllMovies.removeMovie();
} catch(Exception ex){
System.err.println("QT Error:\n"+ex);
}
}
}
public void close() {
if(player!=null){
stop();
if(player!=null){
try{
player.getMovie().disposeQTObject();
} catch(Exception ex){
System.err.println("QT Error:\n"+ex);
}
}
player=null;
}
}
public void realize(String fileName, MediaBag mediaBag) throws Exception {
if(fileName!=null){
setDataSource(mediaBag.getMediaDataSource(fileName));
}
}
}