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

📄 videosourceselector.java

📁 MAPI手机多媒体播放的例子
💻 JAVA
字号:
package com.nokia.example.mmapi.mediasampler.viewer;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.TextField;

import com.nokia.example.mmapi.mediasampler.MediaSamplerMIDlet;
import com.nokia.example.mmapi.mediasampler.data.MediaFactory;

/**
 * List that allow user to select Video source.
 */
public class VideoSourceSelector extends List implements CommandListener
{
    private MediaSamplerMIDlet midlet;

    private List returnList;

    private HTTPUrlForm urlForm;

    private Command backCommand = new Command("Back", Command.BACK, 1);

    public VideoSourceSelector(MediaSamplerMIDlet midlet, MediaList list)
    {
        super("Select Video Source", List.IMPLICIT);
        this.midlet = midlet;
        this.returnList = list;
        urlForm = new HTTPUrlForm();
        append("From http", null);
        append("From jar", null);
        addCommand(backCommand);
        setCommandListener(this);
    }

    public void commandAction(Command cmd, Displayable d)
    {
        if (cmd == SELECT_COMMAND)
        {
            int selection = getSelectedIndex();
            if (selection == 0) // URL source selected
            {
                Display.getDisplay(midlet).setCurrent(urlForm);
            }
            else if (selection == 1) // JAR source selected
            {
                // File name returned by the MediaFactory refers to the
                // "Video-Clip" application property...
                String videoFile = MediaFactory.getDefaultVideo().getFile();
                commitSelection(videoFile);
            }
        }
        else if (cmd == backCommand)
        {
            Display.getDisplay(midlet).setCurrent(returnList);
        }
    }

    /**
     * Initializes and set visible the video canvas with the selected video
     * source.
     * 
     * @param input
     *            String as video http url or file path.
     */
    private void commitSelection(String url)
    {
        try
        {
            VideoCanvas canvas = new VideoCanvas(midlet, returnList, url);
            canvas.prepareToPlay();
            Display.getDisplay(midlet).setCurrent(canvas);
        }
        catch (Exception e)
        {
            midlet.alertError("Cannot open connection: " + e.getMessage());
        }
    }

    /**
     * Form for the video URL input.
     */
    public class HTTPUrlForm extends Form implements CommandListener
    {
        TextField tf = new TextField("URL", "http://", 100, TextField.URL);

        Command cmdOK = new Command("OK", Command.OK, 1);

        Command cmdBack = new Command("Back", Command.BACK, 1);

        public HTTPUrlForm()
        {
            super("HTTP Address");
            String defaultURL = VideoSourceSelector.this.midlet
                    .getAppProperty("Video-URL");
            if (defaultURL != null && defaultURL.length() > 0)
            {
                tf.setString(defaultURL);
            }
            append(tf);
            addCommand(cmdOK);
            addCommand(cmdBack);
            setCommandListener(this);
        }

        public void commandAction(Command cmd, Displayable d)
        {
            if (cmd == cmdOK)
            {
                String url = tf.getString();
                commitSelection(url);
            }
            else
            {
                Display.getDisplay(midlet).setCurrent(VideoSourceSelector.this);
            }
        }
    }
}

⌨️ 快捷键说明

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