亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? playerctrl.java

?? mp3播放功能
?? JAVA
字號(hào):
package MP3;

import java.io.File;
import java.util.Map;

import javax.sound.sampled.SourceDataLine;

import javazoom.jlgui.basicplayer.BasicController;
import javazoom.jlgui.basicplayer.BasicPlayer;
import javazoom.jlgui.basicplayer.BasicPlayerEvent;
import javazoom.jlgui.basicplayer.BasicPlayerException;
import javazoom.jlgui.basicplayer.BasicPlayerListener;

/**
 * This class implements interface BasicPlayerListener.The class
 * is designed to perform the most functions of the mp3 player,
 * such as open, play, pause, stop, seek, rusume,set volumn, 
 * startDSP.It is also a controller of mp3 player, it can get 
 * songs' information to perform the functions.
 *  
 * @author ChenXiaoling
 *
 */

public class PlayerCtrl implements BasicPlayerListener {
	private BasicPlayer player = new BasicPlayer();  
	private Map mp3;
	private double playedRate=0;
	private SpectrumTimeAnalyzer  playAnalyzer;

	public PlayerCtrl(){
		player.addBasicPlayerListener(this);
	}

	/**
	 * @see javazoom.jlgui.basicPlayerListener
	 */
	public void opened(Object arg0, Map arg1) {
		// TODO Auto-generated method stub
		mp3 = arg1;
	}

	/**
	 * 
	 * @see javazoom.jlgui.basicPlayerListener
	 */
	public void progress(int arg0, long arg1, byte[] arg2, Map arg3) {
		// TODO Auto-generated method stub
		playedRate = arg0 /((Integer) mp3.get("audio.length.bytes")).doubleValue();
		update();
		if(playAnalyzer != null){			
			playAnalyzer.writeDSP(arg2);
		}


	}

	/**
	 * @see javazoom.jlgui.basicPlayerListener
	 *
	 */
	protected void update(){

	}



	/**
	 * @see javazoom.jlgui.basicPlayerListener
	 *
	 */
	public void setController(BasicController arg0) {
		// TODO Auto-generated method stub

	}

	/**
	 * @see javazoom.jlgui.basicPlayerListener
	 *
	 */
	public void stateUpdated(BasicPlayerEvent arg0) {
		// TODO Auto-generated method stub

	}

    /**
     * 
     * @return  Returns a mp3 property
     */
	public Map getMp3Property(){
		return mp3;
	}
	
	/**
	 * 
	 * @return Returns total bytes of an audio
	 */
	public int getTotalBytes(){
		return ((Integer) mp3.get("audio.length.bytes")).intValue();
	}

	
	public double playedRate(){
		return  playedRate;
	}

	public long getTotalTimeSecond(){
		return (long) Math.round(getTimeLengthEstimation(mp3)/1000);//seconds
	}


	/**
	 * 
	 * Get the time length of a song.
	 * 
	 * @param properties
	 * @return Returns the duration of a song,which has been changed into milliseconds.
	 */
	private long getTimeLengthEstimation(Map properties)
	{
		long milliseconds = -1;
		int byteslength = -1;
		if (properties != null)
		{
			if (properties.containsKey("audio.length.bytes"))
			{
				byteslength = ((Integer) properties.get("audio.length.bytes")).intValue();
			}
			if (properties.containsKey("duration"))  //持續(xù)時(shí)間
			{
				milliseconds = (int) (((Long) properties.get("duration")).longValue()) / 1000;
			}
			else
			{
				// Try to compute duration
				int bitspersample = -1;
				int channels = -1;
				float samplerate = -1.0f;
				int framesize = -1;
				if (properties.containsKey("audio.samplesize.bits"))
				{
					bitspersample = ((Integer) properties.get("audio.samplesize.bits")).intValue();
				}
				if (properties.containsKey("audio.channels"))
				{
					channels = ((Integer) properties.get("audio.channels")).intValue();
				}
				if (properties.containsKey("audio.samplerate.hz"))
				{
					samplerate = ((Float) properties.get("audio.samplerate.hz")).floatValue();
				}
				if (properties.containsKey("audio.framesize.bytes"))
				{
					framesize = ((Integer) properties.get("audio.framesize.bytes")).intValue();
				}
				if (bitspersample > 0)
				{
					milliseconds = (int) (1000.0f * byteslength / (samplerate * channels * (bitspersample / 8)));
				}
				else
				{
					milliseconds = (int) (1000.0f * byteslength / (samplerate * framesize));
				}
			}
		}
		return milliseconds;
	}

	/**
	 * 
	 * @param playAnalyzer
	 */
	public void setTVShow(SpectrumTimeAnalyzer playAnalyzer) {
		this.playAnalyzer = playAnalyzer;
	}
	
	/**
	 * Open an audio file.
	 * 
	 * @param songName
	 */
	public void openSong(String songName){
		try {
			player.open(new File(songName));
		} catch (BasicPlayerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * Seek the current position that a song has been displayed
	 * @param arg0
	 */
	public void seek(long arg0){
		try {
			player.seek(arg0);
			startDSP();
		} catch (BasicPlayerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void seek(double arg0){		
		int totalBytes = getTotalBytes();
		long seekByte = Math.round(totalBytes*arg0);
		seek(seekByte);
	}
	
	/**
	 * Play an audio file
	 *
	 */
	public void play(){
		try {
			player.play();
			startDSP();
		} catch (BasicPlayerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * Pause playing an audio file
	 *
	 */
	public void pause(){
		try {
			player.pause();
		} catch (BasicPlayerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * Stop playing an audio file
	 *
	 */
	public void stop(){
		try {
			player.stop();
		} catch (BasicPlayerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * Resume playing an audio file
	 *
	 */
	public void resume(){
		try {
			player.resume();
			startDSP();
		} catch (BasicPlayerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * Set the volumn of the currenr audio file which is being displayed
	 * @param value
	 */
	public void setVolumnGain(double value){
		try {
			player.setGain(value);
		} catch (BasicPlayerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * Start to display Spectrum Time Analyzer
	 *
	 */
	private void startDSP(){
		if(mp3 != null){
			Object dataLine = mp3.get("basicplayer.sourcedataline");
			if(dataLine != null && playAnalyzer != null){				
				playAnalyzer.setupDSP((SourceDataLine)dataLine);
				playAnalyzer.startDSP((SourceDataLine)dataLine);
			}
		}
	}

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩和的一区二区| 久久影院视频免费| 一二三四区精品视频| 欧美在线观看一区| 视频在线观看91| 欧美一级艳片视频免费观看| 偷拍与自拍一区| 欧美不卡激情三级在线观看| 国内精品国产三级国产a久久| 久久精品一区二区三区不卡牛牛| 国产成人精品免费在线| 中文字幕亚洲区| 欧美精品日韩综合在线| 激情图区综合网| 免费三级欧美电影| 久久久亚洲精华液精华液精华液| 成人精品国产一区二区4080| 亚洲欧美日韩久久| 在线成人免费观看| 国产精品 欧美精品| 亚洲视频免费观看| 91精品午夜视频| 国产一区二区在线电影| 亚洲天堂久久久久久久| 这里是久久伊人| 国产成人亚洲综合色影视| 依依成人综合视频| 久久免费美女视频| 欧美午夜精品免费| 国产激情视频一区二区在线观看| 亚洲精品视频在线观看网站| 欧美亚洲免费在线一区| 激情小说亚洲一区| 亚洲成人免费影院| 中文字幕精品综合| 日韩亚洲电影在线| 色一情一伦一子一伦一区| 久国产精品韩国三级视频| 亚洲乱码中文字幕| 国产三区在线成人av| 欧美日本免费一区二区三区| 成人性色生活片| 麻豆国产精品官网| 亚洲午夜国产一区99re久久| 久久蜜臀精品av| 91精品国产综合久久久蜜臀粉嫩 | 久久久亚洲高清| 欧美性大战久久久久久久蜜臀| 国产一区二区在线看| 日韩国产欧美在线观看| 麻豆成人91精品二区三区| 一区二区三区成人在线视频| 亚洲国产精品成人久久综合一区| 欧美精品免费视频| 欧美在线免费观看亚洲| 99久久国产综合精品女不卡| 国产精品伊人色| 麻豆久久久久久久| 日本午夜一区二区| 五月激情综合婷婷| 亚洲二区在线视频| 亚洲老司机在线| 亚洲欧美二区三区| 一区精品在线播放| 中文字幕一区日韩精品欧美| 精品国产91乱码一区二区三区 | 国产精品美女久久福利网站| 久久综合久久综合亚洲| 日韩色视频在线观看| 6080国产精品一区二区| 欧美日韩高清在线播放| 欧美日韩国产综合一区二区| 91国产免费看| 99久久99久久精品免费看蜜桃| 国产馆精品极品| 久草精品在线观看| 麻豆精品国产91久久久久久| 日本系列欧美系列| 五月天激情综合网| 天天综合网 天天综合色| 性做久久久久久久免费看| 亚洲第一搞黄网站| 五月天丁香久久| 美国av一区二区| 精彩视频一区二区三区| 精品系列免费在线观看| 国产成人午夜精品5599| 成人18视频在线播放| 91免费观看视频| 欧美三级电影网| 欧美一区二区在线视频| 欧美videossexotv100| 久久久久久97三级| 国产精品激情偷乱一区二区∴| 亚洲欧美日韩久久| 视频一区视频二区中文| 毛片av一区二区| 成人丝袜视频网| 欧洲av在线精品| 欧美xxxxxxxx| 最新不卡av在线| 天堂资源在线中文精品| 韩国v欧美v日本v亚洲v| 波多野结衣一区二区三区| 欧美性猛交一区二区三区精品| 日韩一区二区三区三四区视频在线观看| 精品久久久网站| 亚洲摸摸操操av| 麻豆91小视频| 色悠悠亚洲一区二区| 日韩视频免费观看高清在线视频| 国产午夜亚洲精品羞羞网站| 又紧又大又爽精品一区二区| 久久精品理论片| proumb性欧美在线观看| 777xxx欧美| 欧美国产激情二区三区 | 国产精品成人网| 午夜电影一区二区三区| 国产精品白丝av| 欧美日韩国产精品自在自线| 国产欧美精品在线观看| 午夜欧美视频在线观看| 成人黄色电影在线| 日韩精品中文字幕一区| 亚洲女厕所小便bbb| 精品一区二区三区在线播放视频| 91亚洲资源网| 久久精品日韩一区二区三区| 亚洲成人777| 99精品久久只有精品| 26uuu精品一区二区三区四区在线| 亚洲欧美成人一区二区三区| 国产露脸91国语对白| 欧美日韩国产不卡| 亚洲视频 欧洲视频| 国产成人亚洲综合色影视| 欧美精品一二三区| 一区二区激情视频| www.色综合.com| 久久久久久久久久美女| 蜜臀av一区二区在线免费观看| 91精品福利视频| 一区在线中文字幕| 丁香亚洲综合激情啪啪综合| 精品日韩一区二区三区免费视频| 亚洲一卡二卡三卡四卡无卡久久 | 色婷婷综合久久| 国产亚洲午夜高清国产拍精品| 日本欧美加勒比视频| 欧美性色黄大片| 亚洲激情图片qvod| 91视视频在线观看入口直接观看www | 欧美一区二区视频观看视频| 亚洲狠狠丁香婷婷综合久久久| av电影天堂一区二区在线 | 国产女主播在线一区二区| 韩国精品主播一区二区在线观看 | 日韩国产欧美三级| 欧美日韩国产综合视频在线观看| 一区二区三区在线视频观看58| 成人激情综合网站| 国产精品每日更新| 成人av小说网| 国产精品理论在线观看| 不卡的av中国片| 亚洲少妇30p| 在线中文字幕不卡| 亚洲在线免费播放| 欧美日韩国产在线观看| 亚洲18女电影在线观看| 欧美夫妻性生活| 蜜桃视频一区二区| 2023国产精品| 成人综合在线观看| 亚洲视频一二三区| 欧美亚洲高清一区二区三区不卡| 尤物视频一区二区| 欧美电影一区二区| 久久国产福利国产秒拍| 久久美女高清视频| 成人精品免费网站| 亚洲影院在线观看| 欧美一区二区女人| 国产精品一区三区| 亚洲色图都市小说| 欧美综合亚洲图片综合区| 免费观看在线综合色| 久久女同精品一区二区| 99re8在线精品视频免费播放| 精品亚洲porn| 中文字幕一区在线观看视频| 欧美三级三级三级| 国产一区二区在线影院| 亚洲视频中文字幕| 欧美一区二区三区在线电影| 国产麻豆9l精品三级站| 亚洲欧美综合色| 67194成人在线观看| 福利一区福利二区|