/*
** AACDecoder - Freeware Advanced Audio (AAC) Decoder for Android
** Copyright (C) 2012 Spolecne s.r.o., http://www.spoledge.com
**
** This file is a part of AACDecoder.
**
** AACDecoder is free software; you can redistribute it and/or modify
** it under the terms of the GNU Lesser General Public License as published
** by the Free Software Foundation; either version 3 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 Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.spoledge.aacdecoder;
import com.rubika.aotalk.util.Logging;
/**
* This is the MP3 Stream player class.
* It uses Decoder to decode MP3 stream into PCM samples.
* This class is not thread safe.
* <pre>
* MP3Player player = new MP3Player();
*
* String url = ...;
* player.playAsync( url );
* </pre>
*/
public class MP3Player extends AACPlayer {
private static final String APP_TAG = "--> The Leet :: MP3Player";
////////////////////////////////////////////////////////////////////////////
// Constructors
////////////////////////////////////////////////////////////////////////////
/**
* Creates a new player.
*/
public MP3Player() {
this( null );
}
/**
* Creates a new player.
* @param playerCallback the callback, can be null
*/
public MP3Player( PlayerCallback playerCallback ) {
this( playerCallback, DEFAULT_AUDIO_BUFFER_CAPACITY_MS, DEFAULT_DECODE_BUFFER_CAPACITY_MS );
}
/**
* Creates a new player.
* @param playerCallback the callback, can be null
* @param audioBufferCapacityMs the capacity of the audio buffer (AudioTrack) in ms
* @param decodeBufferCapacityMs the capacity of the buffer used for decoding in ms
* @see setAudioBufferCapacityMs(int)
* @see setDecodeBufferCapacityMs(int)
*/
public MP3Player( PlayerCallback playerCallback, int audioBufferCapacityMs, int decodeBufferCapacityMs ) {
super( playerCallback, audioBufferCapacityMs, decodeBufferCapacityMs );
}
////////////////////////////////////////////////////////////////////////////
// Protected
////////////////////////////////////////////////////////////////////////////
@Override
protected Decoder createDecoder() {
String name = "OpenCORE-MP3";
Decoder ret = Decoder.createByName( name );
if (ret == null) {
Logging.log(APP_TAG, "Cannot find decoder by name '" + name + "'");
throw new RuntimeException("MP3 Decoder not found");
}
return ret;
}
}