• 大小: 2.75MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-12
  • 语言: Java
  • 标签:

资源简介

这是一个用JAVA写的简单播放器的源码,好东西当然得分享下

资源截图

代码片段和文件信息

package com.ctreber.aclib.codec;

import java.io.IOException;

/**
 * 


 * Byte stream decoder for 1 2 and 4 byte values in big or little endian
 * format.
 * 


 * @author © Christian Treber ct@ctreber.com
 */
public abstract class AbstractDecoder {
    /** Highest order byte comes first. */
    public static final int BIG_ENDIAN = 0;

    /** Lowest order byte comes first. */
    public static final int LITTLE_ENDIAN = 1;

    /** Determines the byte order in multi byte values. */
    private int _endianness = BIG_ENDIAN;

    protected long _pos;

    /** Static buffer to read values w/o allocating an array every time. */
    private final byte[] _readBuf = new byte[4];

    /**
     * @return A one byte value (aka BYTE unsigned char)
     * @throws java.io.IOException
     */
    public short readUInt1() throws IOException {
        return (short) readValue(1);
    }

    /**
     * @return A two byte value (aka WORD unsigned short)
     * @throws java.io.IOException
     */
    public int readUInt2() throws IOException {
        return (int) readValue(2);
    }

    /**
     * @return A four byte value (aka DWORD unsigned long).
     * @throws java.io.IOException
     */
    public long readUInt4() throws IOException {
        return readValue(4);
    }

    /**
     * @param pEndianess
     *            The byte order
     * @see #BIG_ENDIAN
     * @see #LITTLE_ENDIAN
     */
    public void setEndianess(final int pEndianess) {
        _endianness = pEndianess;
    }

    /**
     * @return Current position in file
     */
    public long getPos() {
        return _pos;
    }

    /**
     * @param pPos
     *            Position to advance to. Nothing will happen if the position
     *            has already been passed.
     * @throws java.io.IOException
     */
    public abstract void seek(long pPos) throws IOException;

    /**
     * Implemented by a specific decoder.
     * @param pBytes
     *            Bytes to read
     * @param pBuffer
     *            The buffer to write the read bytes to. If null a buffer is
     *            reserved.
     * @return Array with the bytes read.
     * @throws java.io.IOException
     */
    public abstract byte[] readBytes(long pBytes byte[] pBuffer)
            throws IOException;

    protected long readValue(final int pBytes) throws IOException {
        readBytes(pBytes _readBuf);
        if (pBytes == 1) {
            // Shortcut: endianness plays no role here.
            return _readBuf[0] & 0xFF;
        }

        long lValue = 0;
        if (_endianness == BIG_ENDIAN) {
            for (int lByteNo = 0; lByteNo < pBytes; lByteNo++) {
                lValue <<= 8;
                lValue += _readBuf[lByteNo] & 0xff;
            }
        } else {
            for (int lByteNo = pBytes - 1; lByteNo >= 0; lByteNo--) {
                lValue <<= 8;
                lValue += _readBuf[lByteNo] & 0xff;
            }
        }

        return lValue;
    }

    /**
     * Cal

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2009-08-02 18:45  YOYOPlayer-src\
     文件        3298  2008-12-27 20:15  YOYOPlayer-src\build-before-profiler.xml
     文件        2812  2008-12-27 20:15  YOYOPlayer-src\build-user.xml
     文件         205  2008-12-27 20:15  YOYOPlayer-src\build.properties
     文件        3353  2008-12-27 20:15  YOYOPlayer-src\build.xml
     目录           0  2009-08-02 18:46  YOYOPlayer-src\lib\
     文件       46725  2008-12-27 20:14  YOYOPlayer-src\lib\commons-codec-1.3.jar
     文件      305001  2008-12-27 20:14  YOYOPlayer-src\lib\commons-httpclient-3.1.jar
     文件       52915  2008-12-27 20:14  YOYOPlayer-src\lib\commons-logging-1.1.jar
     文件       26202  2008-12-27 20:14  YOYOPlayer-src\lib\commons-logging-api.jar
     文件      266881  2008-12-27 20:14  YOYOPlayer-src\lib\examples.jar
     文件      103640  2008-12-27 20:14  YOYOPlayer-src\lib\jflac-1.2.jar
     文件      105446  2008-12-27 20:14  YOYOPlayer-src\lib\jl1.0.jar
     文件      138975  2008-12-27 20:14  YOYOPlayer-src\lib\jmactritonusspi1.74.jar
     文件      288699  2008-12-27 20:14  YOYOPlayer-src\lib\jna.jar
     文件        6839  2008-12-27 20:14  YOYOPlayer-src\lib\jogg-0.0.7.jar
     文件       58917  2008-12-27 20:14  YOYOPlayer-src\lib\jorbis-0.0.15.jar
     文件       99833  2008-12-27 20:14  YOYOPlayer-src\lib\jspeex0.9.7.jar
     文件      161477  2008-12-27 20:14  YOYOPlayer-src\lib\junit-4.4.jar
     文件       12578  2008-12-27 20:14  YOYOPlayer-src\lib\kj_dsp1.1.jar
     文件       24538  2008-12-27 20:14  YOYOPlayer-src\lib\mp3spi1.9.4.jar
     文件      102723  2008-12-27 20:14  YOYOPlayer-src\lib\tritonus_share.jar
     文件       13776  2008-12-27 20:14  YOYOPlayer-src\lib\vorbisspi1.0.2.jar
     文件          85  2008-12-27 20:15  YOYOPlayer-src\manifest.mf
     目录           0  2009-08-02 18:46  YOYOPlayer-src\nbproject\
     文件       37896  2009-07-29 18:49  YOYOPlayer-src\nbproject\build-impl.xml
     文件         638  2009-07-29 18:49  YOYOPlayer-src\nbproject\genfiles.properties
     目录           0  2009-08-02 18:45  YOYOPlayer-src\nbproject\private\
     文件         344  2009-07-29 18:49  YOYOPlayer-src\nbproject\private\private.properties
     文件        1851  2009-08-02 16:25  YOYOPlayer-src\nbproject\private\private.xml
     文件        5609  2008-12-27 20:12  YOYOPlayer-src\nbproject\profiler-build-impl.xml
............此处省略533个文件信息

评论

共有 条评论