manager.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 619 行 · 第 1/2 页

JAVA
619
字号
 *     audio_type      = bitrate_variable / other_type *     other_type      = alphanumeric *     pos_integer     = 1*DIGIT * *   and *     <a href="#content-type">content type</a> is given in the MIME syntax. * </pre> *   <br> *   &nbsp;&nbsp;&nbsp;&nbsp;Example: *   <br> * <pre> *     encoding=pcm&rate=11025&bits=16&channels=1 * </pre> * * <a name="video_encodings"></a> * &nbsp;&nbsp;C. Describing the video or image encodings:<p> * <pre> *     video_encodings   = video_enc_param *( "&" video_param ) *     video_enc_param   = "encoding=" video_enc *     video_enc         = "gray8" / "rgb888" / "bgr888" / *                         "rgb565" / "rgb555" / "yuv444" / *                         "yuv422" / "yuv420" / "jpeg" / "png" / *                         content_type *     video_param       = "width=" width / *                         "height=" height / *                         "fps=" fps / *                         "colors=" colors / *                         "progressive=" progressive / *                         "interlaced=" interlaced / *                         "type=" video_type *     width             = pos_integer *     height            = pos_integer *     fps               = pos_number *     quality           = pos_integer *     colors            = "p" colors_in_palette / *                       = "rgb" r_bits g_bits b_bits / *                       = "gray" gray_bits *     colors_in_palette = pos_integer *     r_bits            = pos_integer *     g_bits            = pos_integer *     b_bits            = pos_integer *     gray_bits         = pos_integer *     progressive       = boolean *     video_type        = jfif / exif / other_type *     other_type        = alphanumeric *     interlaced        = boolean *     pos_number        = 1*DIGIT [ "." 1*DIGIT ] *     boolean           = "true" / "false" * *   and *     <a href="#content-type">content type</a> is given in the MIME syntax. * </pre> *   <br> *   &nbsp;&nbsp;&nbsp;&nbsp;Examples: *   <br> * <pre> *     encoding=gray8&width=160&height=120 *     encoding=jpeg&quality=80&progressive=true&type=jfif *         (progressive JPEG with quality 80 in jfif format) *     encoding=jpeg&type=exif *         (JPEG in exif format) *     encoding=png&colors=rgb888 *         (24 bits/pixel PNG) *     encoding=rgb888 *         (raw 24-bit rgb image) *     encoding=rgb&colors=rgb888 *         (raw 24-bit rgb image) * </pre> * * <a name="mixed_params"></a> * &nbsp;&nbsp;D. Describing mixed audio and video encodings:<p> * <pre> *     mixed_encodings = audio_encodings "&" video_encodings * </pre> *   <br> *   &nbsp;&nbsp;&nbsp;&nbsp;Example: *   <br> * <pre> *     encoding=pcm&encoding=gray8&width=160&height=160 * </pre> * * &nbsp;&nbsp;E. Describing custom media encodings:<p> * <pre> *     custom_encodings = custom_enc_param *( "&" param ) *     custom_enc_param = "encoding=" value *     param            = key "=" value *     key              = alphanumeric *     value            = alphanumeric * </pre> * * <a name="encodings_rules"></a> * &nbsp;&nbsp;F. Rules for handling the encodings strings:<p> * <ul> * <li> If a given parameter is a custom parameter and is not recognizable *      by the implementation, the parameter is treated as an illegal *      parameter and the method must throw an appropriate Exception *      to denote that. * <li> If the value for a given parameter is incorrect because it is *      syntactically wrong or illegal (e.g. out of range), *      the method must throw an appropriate Exception to denote that. * </ul> * * @created    January 13, 2005 * @see        javax.microedition.media.protocol.DataSource * @see        Player * @see        TimeBase */public final class Manager {        /**     * The locator to create a tone <code>Player</code>     * to play back tone sequences.  For example,     * <pre>     * try {     *     Player p = Manager.createPlayer(Manager.TONE_DEVICE_LOCATOR);     *     p.realize();     *     ToneControl tc = (ToneControl)p.getControl("ToneControl");     *     tc.setSequence(mySequence);     *     p.start();     * } catch (IOException ioe) {     * } catch (MediaException me) {}     * </pre>     *     * If a tone sequence is not set on the tone     * <code>Player</code> via its <code>ToneControl</code>,     * the <code>Player</code> does not carry any     * sequence.  <code>getDuration</code> returns 0 for this     * <code>Player</code>.     * <p>     * The content type of the <code>Player</code> created from this     * locator is <code>audio/x-tone-seq</code>.     * <p>     * A <code>Player</code> for this locator may not be supported     * for all implementations.     * <p>     * Value "device://tone" is assigned to <code>TONE_DEVICE_LOCATOR</code>.     */    public final static String TONE_DEVICE_LOCATOR = "device://tone";    // private final static String RADIO_CAPTURE_LOCATOR = "capture://radio";    private final static String DS_ERR = "Cannot create a DataSource for: ";        private final static String PL_ERR = "Cannot create a Player for: ";        private final static String REDIRECTED_MSG = " with exception message: ";    /**     * This private constructor keeps anyone from actually     * getting a <CODE>Manager</CODE>.     */    private Manager() { }    /**     * Return the list of supported content types for the given protocol.     * <p>     * See <a href="#content-type">content types</a> for the syntax     * of the content types returned.     * See <a href="#media-protocol">protocol name</a> for the syntax     * of the protocol used.     * <p>     * For example, if the given <code>protocol</code>     * is <code>"http"</code>,     * then the supported content types that can be played back     * with the <code>http</code> protocol will be returned.     * <p>     * If <code>null</code> is passed in as the <code>protocol</code>,     * all the supported content types for this implementation     * will be returned.  The returned array must be non-empty.     * <p>     * If the given <code>protocol</code> is an invalid or     * unsupported protocol, then an empty array will be returned.     *     * @param  protocol  The input protocol for the supported content types.     * @return           The list of supported content types for the given protocol.     */    public static String[] getSupportedContentTypes(String protocol) {        return new String[0];            }    /**     * Return the list of supported protocols given the content     * type.  The protocols are returned     * as strings which identify what locators can be used for creating     * <code>Player</code>'s.     * <p>     * See <a href="#media-protocol">protocol name</a> for the syntax     * of the protocols returned.     * See <a href="#content-type">content types</a> for the syntax     * of the content type used.     * <p>     * For example, if the given <code>content_type</code>     * is <code>"audio/x-wav"</code>, then the supported protocols     * that can be used to play back <code>audio/x-wav</code>     * will be returned.     * <p>     * If <code>null</code> is passed in as the     * <code>content_type</code>,     * all the supported protocols for this implementation     * will be returned.  The returned array must be non-empty.     * <p>     * If the given <code>content_type</code> is an invalid or     * unsupported content type, then an empty array will be returned.     *     * @param  content_type  The content type for the supported protocols.     * @return               The list of supported protocols for the given content type.     */    public static String[] getSupportedProtocols(String content_type) {        return new String[0];    }    /**     * Create a <code>Player</code> from an input locator.     *     * @param  locator                       A locator string in URI syntax that describes     * the media content.     * @return                               A new <code>Player</code>.     * @exception  MediaException            Thrown if a <code>Player</code> cannot     * be created for the given locator.     * @exception  IOException               Thrown if there was a problem connecting     * with the source pointed to by the <code>locator</code>.     */    public static Player createPlayer(String locator)         throws IOException, MediaException {        if (locator == null) {            throw new IllegalArgumentException();        }        throw new MediaException("Cannot create Player");    }    /**     * Create a <code>Player</code> to play back media from an     * <code>InputStream</code>.     * <p>     * The <code>type</code> argument     * specifies the content-type of the input media.  If     * <code>null</code> is given, <code>Manager</code> will     * attempt to determine the type.  However, since determining     * the media type is non-trivial for some media types, it     * may not be feasible in some cases.  The     * <code>Manager</code> may throw a <code>MediaException</code>     * to indicate that.     *     * @param  stream                        The <code>InputStream</code> that delivers the     * input media.     * @param  type                          The <code>ContentType</code> of the media.     * @return                               A new <code>Player</code>.     * @exception  MediaException            Thrown if a <code>Player</code> cannot     * be created for the given stream and type.     * @exception  IOException               Thrown if there was a problem reading data     * from the <code>InputStream</code>.     */    public static Player createPlayer(InputStream stream, String type)         throws IOException, MediaException {        if (stream == null) {            throw new IllegalArgumentException();        }        if (type == null) {            throw new MediaException(PL_ERR + "NULL content-type");        }                throw new MediaException("Cannot create Player");    }    /**     * Play back a tone as specified by a note and its duration.     * A note is given in the range of 0 to 127 inclusive.  The frequency     * of the note can be calculated from the following formula:     * <pre>     *     SEMITONE_CONST = 17.31234049066755 = 1/(ln(2^(1/12)))     *     note = ln(freq/8.176)*SEMITONE_CONST     *     The musical note A = MIDI note 69 (0x45) = 440 Hz.     * </pre>     * This call is a non-blocking call. Notice that this method may     * utilize CPU resources significantly on devices that don't     * have hardware support for tone generation.     *     * @param  note                          Defines the tone of the note as specified by the     * above formula.     * @param  duration                      The duration of the tone in milli-seconds.     * Duration must be positive.     * @param  volume                        Audio volume range from 0 to 100.  100 represents     * the maximum     * volume at the current hardware level.  Setting the volume to a     * value less     * than 0 will set the volume to 0.  Setting the volume to greater than     * 100 will set the volume to 100.     * @exception  MediaException            Thrown if the tone cannot be played     * due to a device-related problem.     */    public static void playTone(int note, int duration, int volume)         throws MediaException {                if (note < 0 || note > 127 || duration <= 0) {            throw new IllegalArgumentException("bad param");        }    }}

⌨️ 快捷键说明

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