⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playscreen.java

📁 国外的j2me播放器软件
💻 JAVA
字号:
package no.auc.one.portableplayer.userinterface;

import java.io.IOException;

import javax.microedition.lcdui.*;

import no.auc.one.portableplayer.communication.mediarenderer.RenderingControlService;
import no.auc.one.portableplayer.settings.Settings;

import org.apache.log4j.*;

public class PlayScreen extends Form implements CommandListener,
                                                ItemCommandListener,
                                                ItemStateListener
{
    private static Logger LOG = Logger.getLogger("PS");

    private Displayable prevDisp;
    private Display disp;
    private Command goBack;
    
    private StringItem trackTitle;
    private StringItem trackArtist;
    private StringItem trackAlbum;
    private ImageItem trackArt;
    
    private ImageItem imgPlayPause;
    private ImageItem imgStop;
    private ImageItem imgSkipPrev;
    private ImageItem imgSkipNext;
    

    private Command cmdPlayPause;
    private Command cmdStop;
    private Command cmdSkipPrev;
    private Command cmdSkipNext;
        
    private Image playImage;
    private Image pauseImage; 
    private Gauge audioVolume;
    
    private boolean paused;

    public PlayScreen(String title, Displayable d, Display disp) {
        super (title);
	
        paused = false;

        try {
            LOG.debug("Creating PlayScreen");

            this.disp = disp;
            prevDisp = d;
            
            goBack = new Command("Home", Command.BACK, 1);
            this.addCommand(goBack);
            this.setCommandListener(this);
            this.setItemStateListener(this);
            
            playImage = Image.createImage("/play_cmd.png");
            pauseImage = Image.createImage("/pause_cmd.png");            

            trackTitle = new StringItem(
                "Title: ", 
                "\n",
                Item.LAYOUT_LEFT);
            trackArtist = new StringItem(
                "Artist: ",
                "\n",
                Item.LAYOUT_LEFT);
            trackAlbum = new StringItem(
                "Album: ", 
                "\n",
                Item.LAYOUT_LEFT);
            trackArt = new ImageItem(
                "Artwork: ", 
                Image.createImage("/aml_noalpha.png"), 
                ImageItem.LAYOUT_NEWLINE_BEFORE | 
                ImageItem.LAYOUT_CENTER,                
                "Agder Mobility Lab");
            
            imgPlayPause = new ImageItem(
                "",
                playImage,
                Item.LAYOUT_NEWLINE_BEFORE |
                Item.LAYOUT_LEFT |
                Item.BUTTON,
                "Play");
            cmdPlayPause = new Command("Play/Pause", Command.ITEM, 1);
            imgPlayPause.setDefaultCommand(cmdPlayPause);
            imgPlayPause.setItemCommandListener(this);
		
            imgStop = new ImageItem(
                "",
                Image.createImage("/stop_cmd.png"),
                Item.LAYOUT_LEFT |
                Item.BUTTON,
                "Stop");
            cmdStop = new Command("Stop", Command.ITEM, 1);
            imgStop.setDefaultCommand(cmdStop);
            imgStop.setItemCommandListener(this);
		
            imgSkipPrev = new ImageItem(
                "",
                Image.createImage("/prev_cmd.png"),
                Item.LAYOUT_LEFT |
                Item.BUTTON,
                "Prev");
            cmdSkipPrev = new Command("Previous", Command.ITEM, 1);
            imgSkipPrev.setDefaultCommand(cmdSkipPrev);
            imgSkipPrev.setItemCommandListener(this);
		
            imgSkipNext = new ImageItem(
                "",
                Image.createImage("/next_cmd.png"),
                Item.LAYOUT_LEFT |
                Item.BUTTON,
                "Next");
            cmdSkipNext = new Command("Next", Command.ITEM, 1);
            imgSkipNext.setDefaultCommand(cmdSkipNext);
            imgSkipNext.setItemCommandListener(this);
		
            audioVolume = new Gauge(
                "Volume",
                true,
                10,
                7);
            audioVolume.setLayout(
                audioVolume.getLayout() | 
                Item.LAYOUT_NEWLINE_BEFORE);
            audioVolume.setItemCommandListener(this);
            
            append(trackTitle);
            append(trackAlbum);
            append(trackArtist);
            append(new Spacer(20, 20));
            append(imgPlayPause);
            append(imgSkipPrev);
            append(imgStop);
            append(imgSkipNext);
            append(new Spacer(20, 20));
            append(audioVolume);
            append(new Spacer(20, 20));
            append(trackArt);
        } catch (Exception e) {
            LOG.fatal("Exception while creating PlayScreen items");
            LOG.fatal(e);
            e.printStackTrace();
        }
	
	/*
	Settings s = (Settings)Settings.getInstance();
	MediaRenderer mr = (MediaRenderer)s.getCurrentMediaRenderer();
	if (mr != null) {
		avts = (AVTransportService)mr.getAVTransportService();
		rcs = (RenderingControlService)mr.getRenderingControlService();
	}
	*/
    }

    public void setSongTitle(String t) {
        trackTitle.setText("\n" + t);
    }

    public void setAlbum(String a) {
        trackAlbum.setText("\n" + a);
    }

    public void setArtist(String a) {
        trackArtist.setText("\n" + a);
    }

    public void setArt(Image i) {
        trackArt.setImage(i);
    }
    
    public void notifyPlay() {
		imgPlayPause.setImage(pauseImage);

        paused = false;
    }

    private void actionSetVolume() {
	    try {
            RenderingControlService rcs = 
                Settings.getInstance().getCurrentMediaRenderer().getRenderingControlService();
		    rcs.setVolume(audioVolume.getValue()*10);
	    } catch (IOException e) {
		    LOG.fatal("Exception trying to send command to renderer");
		    LOG.fatal(e);
	    }
    }

    public void commandAction(Command c, Displayable d) {
        System.out.println("commandAction for Displayable in PlayScreen");
        
	    if (goBack == c) {
            System.out.println("Prev disp set...");
            System.out.println("disp = " + disp + "; prevDisp=" + prevDisp);
		    disp.setCurrent(prevDisp);		    
	    }
	    else {
		    LOG.debug("Unknown command: (" + c + ") (" + d + ")");
	    }
    }

    public void commandAction(Command c, Item i) {
        try {    
    	    int mediaAction = -1;
            if(c == cmdPlayPause) {		    
    		    if (!paused) {
    			    mediaAction  = InvokeMediaAction.PLAY;
                    imgPlayPause.setImage(pauseImage);
                    paused = false;
                    this.setTitle("Now playing");                                
    		    } else {
    			    mediaAction = InvokeMediaAction.PAUSE;
                     imgPlayPause.setImage(playImage);
                     paused = true;
                     this.setTitle("Paused");                    
    		    }
    	    } else if(c == cmdStop) {
    		    mediaAction = InvokeMediaAction.STOP;
                imgPlayPause.setImage(playImage);
                paused = false;
                this.setTitle("Stopped");                
    	    } else if(c == cmdSkipPrev) {
    		    mediaAction = InvokeMediaAction.PREVIOUS_TRACK;
    	    } else if(c == cmdSkipNext) {
    		    mediaAction = InvokeMediaAction.NEXT_TRACK;
    	    } else {
    		    LOG.debug(
                    "Unknown Item cmd action: (" + c.getLabel() +
    		        ") (" + i.getLabel() + ")");
    	    }
            
            Display d = Display.getDisplay(UI.getInstance().getOwner());
            InvokeMediaAction ima = new InvokeMediaAction(mediaAction);
            
            WaitingAlert wa = new WaitingAlert(
                "Sending command to Media Renderer",
                d,
                ima,
                Thread.currentThread(),
                false);                        
            d.setCurrent(wa, d.getCurrent());
            long start = System.currentTimeMillis();
            ima.start();
            ima.join();
            if (System.currentTimeMillis() - start < 1000) {
                wa.setTimeout(1000);
            } else {
                wa.setTimeout(1);
            }
        } catch (InterruptedException ie) {
            System.err.println("Interrupted while joining with IMA thread");
            ie.printStackTrace();
        }
    }
    
    public void itemStateChanged(Item i) {	    
	    if (i == audioVolume) {
		    actionSetVolume();
        } else {
		    LOG.debug("Unknown Item state changed: (" + i.getLabel() + ")");
	    }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -