Search in sources :

Example 1 with JavaLayerException

use of javazoom.jl.decoder.JavaLayerException in project openhab1-addons by openhab.

the class TTSServiceGoogleTTS method say.

/**
     * {@inheritDoc}
     */
public void say(String text, String voiceName, String outputDevice) {
    logger.info("Executing GoogleTTS for text '{}' in language {}", text, ttsLanguage);
    BufferedInputStream stream = null;
    try {
        List<String> sentences = textProcessor.splitIntoChunks(text);
        InputStream completeStream = getSpeechForText(sentences);
        Player playMP3 = new Player(completeStream);
        playMP3.play();
    } catch (IOException e) {
        logger.warn("Error while connecting to Google translate service", e);
        if (e instanceof FileNotFoundException) {
            logger.warn("Possibly unsupported language '{}'?", ttsLanguage);
        }
    } catch (JavaLayerException e) {
        logger.warn("Unable to play InputStream for text " + text, e);
    } finally {
        IOUtils.closeQuietly(stream);
    }
}
Also used : Player(javazoom.jl.player.Player) BufferedInputStream(java.io.BufferedInputStream) BufferedInputStream(java.io.BufferedInputStream) SequenceInputStream(java.io.SequenceInputStream) InputStream(java.io.InputStream) FileNotFoundException(java.io.FileNotFoundException) IOException(java.io.IOException) JavaLayerException(javazoom.jl.decoder.JavaLayerException)

Example 2 with JavaLayerException

use of javazoom.jl.decoder.JavaLayerException in project sulky by huxi.

the class JLayerSounds method resolvePlayer.

private Player resolvePlayer(String soundName) {
    String soundLocation = null;
    if (soundLocations != null) {
        soundLocation = soundLocations.get(soundName);
    }
    if (soundLocation == null) {
        if (logger.isInfoEnabled())
            logger.info("No sound location defined for sound {}.", soundName);
        return null;
    }
    InputStream soundStream = JLayerSounds.class.getResourceAsStream(soundLocation);
    if (soundStream == null) {
        if (logger.isInfoEnabled())
            logger.info("Couldn't retrieve {} as a resource...", soundLocation);
        File file = new File(soundLocation);
        if (file.isFile()) {
            try {
                soundStream = Files.newInputStream(file.toPath());
            } catch (IOException e) {
                if (logger.isInfoEnabled())
                    logger.info("Couldn't open {} as a file.", soundLocation);
            }
        }
        if (soundStream == null) {
            try {
                URL url = new URL(soundLocation);
                soundStream = url.openStream();
            } catch (IOException e) {
                if (logger.isInfoEnabled())
                    logger.info("Couldn't open {} as a URL.", soundLocation);
            }
        }
    }
    if (soundStream != null) {
        try {
            return new Player(soundStream);
        } catch (JavaLayerException ex) {
            if (logger.isWarnEnabled())
                logger.warn("Exception while creating player for sound '{}'!", soundName, ex);
        }
    }
    return null;
}
Also used : Player(javazoom.jl.player.Player) InputStream(java.io.InputStream) IOException(java.io.IOException) File(java.io.File) JavaLayerException(javazoom.jl.decoder.JavaLayerException) URL(java.net.URL)

Example 3 with JavaLayerException

use of javazoom.jl.decoder.JavaLayerException in project JWildfire by thargor6.

the class JLayerInterface method play.

public void play(String pFilename) throws Exception {
    stop();
    FileInputStream fin = new FileInputStream(pFilename);
    BufferedInputStream bin = new BufferedInputStream(fin);
    processor = new PlayerAudioProcessor();
    processor.setMuted(muted);
    audioDevice = new JWFAudioDevice(processor);
    audioDevice.close();
    player = new Player(bin, audioDevice);
    new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                playing = true;
                try {
                    player.play();
                } finally {
                    processor.finish();
                }
            } catch (JavaLayerException e) {
                e.printStackTrace();
                playing = false;
            }
        }
    }).start();
}
Also used : Player(javazoom.jl.player.Player) BufferedInputStream(java.io.BufferedInputStream) JavaLayerException(javazoom.jl.decoder.JavaLayerException) FileInputStream(java.io.FileInputStream)

Example 4 with JavaLayerException

use of javazoom.jl.decoder.JavaLayerException in project JWildfire by thargor6.

the class JWFAudioDevice method createSource.

protected void createSource() throws JavaLayerException {
    Throwable t = null;
    try {
        Line line = AudioSystem.getLine(getSourceLineInfo());
        if (line instanceof SourceDataLine) {
            source = (SourceDataLine) line;
            source.open(audioFormat);
            source.start();
        }
    } catch (Throwable ex) {
        t = ex;
    }
    if (source == null)
        throw new JavaLayerException("Cannot obtain source audio line", t);
}
Also used : Line(javax.sound.sampled.Line) DataLine(javax.sound.sampled.DataLine) SourceDataLine(javax.sound.sampled.SourceDataLine) SourceDataLine(javax.sound.sampled.SourceDataLine) JavaLayerException(javazoom.jl.decoder.JavaLayerException)

Aggregations

JavaLayerException (javazoom.jl.decoder.JavaLayerException)4 Player (javazoom.jl.player.Player)3 BufferedInputStream (java.io.BufferedInputStream)2 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 FileNotFoundException (java.io.FileNotFoundException)1 SequenceInputStream (java.io.SequenceInputStream)1 URL (java.net.URL)1 DataLine (javax.sound.sampled.DataLine)1 Line (javax.sound.sampled.Line)1 SourceDataLine (javax.sound.sampled.SourceDataLine)1