📄 listplayer.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package org.serain.shmily.player;import java.io.*;import java.util.*;/** * * @author Administrator */public class ListPlayer { List<String> list=new ArrayList<String>(); private int index;//当前播放歌曲素引 private Mp3Player player=null;//当前mp3播放器 private boolean next=false;//判断是否按了下一曲 private boolean dosome=false;//判断是否按了上一曲 private boolean stop=false;//判断是否按了停止 private boolean click=false; public ListPlayer(List<String> list,int index){//listplayer初始化 this.list=list; this.index=index; } public void changList(List<String>list,int index){//更换播放列表 this.list=list; this.index=index; } public void startId(int id){//播放某首歌 try { if(player!=null && player.isAlive()){//判断当前是否有歌曲在播放 player.stope(); } index=id;//更新当前播放素引 String indexPath = list.get(id); player = new Mp3Player(new File(indexPath));//启动新播放线程 player.start(); Thread listener=new Thread(new Runnable(){//监听是否结束 public void run(){ synchronized(player){ try { player.wait(); } catch (InterruptedException ex) { ex.printStackTrace(); } } if(!dosome )//如果不是按的上一曲或者下一曲则自动跳到下一曲 next2(); dosome=false;//重设标志 } }); listener.start(); } catch (Exception e) { e.printStackTrace(); } } public void play(){//当前播放线程播放 if(player!=null && player.isAlive())//判断是否有歌曲在播放或者是否线程还在运行 player.play(); else startId(index); } public void pause(){//当前播放线程暂停 if(player!=null && player.isAlive())//判断是否有歌曲在播放或者是否线程还在运行 player.pause(); } public void stop(){//当前播放线程停止 if(player!=null && player.isAlive()){//判断是否有歌曲在播放或者是否线程还在运行 dosome=true; player.stope(); } } public void add(String path){//增加一首歌 list.add(path); } public void remove(int id){//移除一首歌 list.remove(id); } public void previous(){//前首歌 dosome=true; if(index-1<0){//到了最前面 startId(list.size()-1);//最后一首歌 }else{ startId(index-1); } } public void next(){//后首歌 dosome=true; if(index+1>=list.size()){//到了末尾 startId(0);//第一首歌 }else{ startId(index+1); } } public void next2(){//后首歌 if(index+1>=list.size()){//到了末尾 startId(0);//第一首歌 }else{ startId(index+1); } } public void playClick(int id){ dosome=true; startId(id); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -