亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? taghead.java

?? YOYOPlayer MP3播放器 java+JMF實現
?? JAVA
字號:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package com.hadeslee.audiotag.tag.ape;import com.hadeslee.yoyoplayer.util.Util;import java.util.Arrays;import java.util.logging.Level;import java.util.logging.Logger;/** * 內部的私有類,它代表了一個APE標簽的頭部 * @author hadeslee */public class TagHead {    private static Logger log = Logger.getLogger(TagHead.class.getName());    private byte[] data;//頭部的數據    private boolean valid;//是否是合法的頭部    private int version = 2000;//版本,默認是2000    private int tagSize;//標簽的長度,包括尾標簽以及所有的項目,不包括頭標簽    private int itemCount;//項目的數量    private int flag = FOOT;//標簽的其它標志,指示它是頭部還是尾部    public static final int HEAD = 0xA0000000;    public static final int FOOT = 0x80000000;    public static final int V1=1000;//表示APE的版本號    public static final int V2=2000;    private int index;//這個標頭的起始點的位置,相對于文件    public TagHead(byte[] data) {        this.data = data;        parseData();    }    public TagHead() {    }    public int getIndex() {        return index;    }    public void setIndex(int index) {        this.index = index;    }    public byte[] getBytes() {        //標頭總共是32個字節        byte[] head = new byte[32];        byte[] temp = {(byte) 'A',            (byte) 'P',            (byte) 'E',            (byte) 'T',            (byte) 'A',            (byte) 'G',            (byte) 'E',            (byte) 'X'        };        //先把頭的標量填進去,8字節        System.arraycopy(temp, 0, head, 0, 8);        temp = Util.getBytesFromInt(version);        //再把版本號寫進去,4字節        System.arraycopy(temp, 0, head, 8, 4);        temp = Util.getBytesFromInt(tagSize);        log.log(Level.SEVERE,"TAGSIZE="+tagSize);        //再把標簽的長度寫進去,4字節        System.arraycopy(temp, 0, head, 12, 4);        temp = Util.getBytesFromInt(itemCount);        //再把標簽的數量寫進去,4字節        System.arraycopy(temp, 0, head, 16, 4);        temp = Util.getBytesFromInt(flag);        //再把標志寫進去,表示是標簽頭部還是尾部        System.arraycopy(temp, 0, head, 20, 4);        //把標志空的8個字節進去,因為默認就是空的,所以不用寫了        //頭部或者尾部的數據塊已經構造好了        return head;    }    private void parseData() {        try {            checkHead();            checkVersion();            checkTagSize();            checkItemCount();            checkFlag();            valid = true;        } catch (Exception exe) {            log.log(Level.SEVERE, "分析標簽異常!");            valid = false;        }    }    /**     * 這個標簽是否有頭標簽,因為一般讀都是從尾部讀過去的     * @return 是否有頭標簽,重寫的時候有用     */    public boolean hasHeader() {        return ((1 << 31) & flag) != 0;    }    /**     * 檢查頭部八個字節的的數據是否一樣     */    private void checkHead() {        byte[] temp = new byte[8];        byte[] head = {(byte) 'A',            (byte) 'P',            (byte) 'E',            (byte) 'T',            (byte) 'A',            (byte) 'G',            (byte) 'E',            (byte) 'X'        };        System.arraycopy(data, 0, temp, 0, 8);        //比較兩個頭部的數據是否一樣,這是第一要素        if (!Arrays.equals(head, temp)) {            throw new RuntimeException("頭部數據不一樣!");        }    }    /**     * 檢查版本號是否合法,必須是1000或者2000     */    private void checkVersion() {        byte[] temp = new byte[4];        System.arraycopy(data, 8, temp, 0, 4);        int v = Util.getInt(temp);        if (v == 2000 || v == 1000) {            version = v;            log.log(Level.INFO, "版本號是:" + v);        } else {            throw new RuntimeException("版本號不合法!!");        }    }    private void checkTagSize() {        byte[] temp = new byte[4];        System.arraycopy(data, 12, temp, 0, 4);        tagSize = Util.getInt(temp);        log.log(Level.INFO, "標簽大小:" + tagSize);    }    private void checkItemCount() {        byte[] temp = new byte[4];        System.arraycopy(data, 16, temp, 0, 4);        itemCount = Util.getInt(temp);        log.log(Level.INFO, "標簽項目數:" + itemCount);    }    private void checkFlag() {        byte[] temp = new byte[4];        System.arraycopy(data, 20, temp, 0, 4);        flag = Util.getInt(temp);        log.log(Level.INFO, "標志:" + flag);    }    public void setFlag(int flag) {        this.flag = flag;    }    public void setItemCount(int itemCount) {        this.itemCount = itemCount;    }    public void setTagSize(int tagSize) {        this.tagSize = tagSize;    }    public void setVersion(int version) {        if(!(version==V1||version==V2)){            throw new RuntimeException("非法的版本號,只能是V2或者V1.");        }        this.version = version;    }    public int getFlag() {        return flag;    }    public int getItemCount() {        return itemCount;    }    public int getTagSize() {        return tagSize;    }    public boolean isValid() {        return valid;    }    public int getVersion() {        return version;    }    public static void main(String[] args) {    }    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图视频网站| 亚洲男人天堂一区| 8x福利精品第一导航| 色又黄又爽网站www久久| 色猫猫国产区一区二在线视频| 91毛片在线观看| 欧美大度的电影原声| 国产亚洲欧美激情| 亚洲高清久久久| 精品一区二区三区免费| 国产成人久久精品77777最新版本| 91麻豆国产精品久久| 日韩精品三区四区| 91久久香蕉国产日韩欧美9色| 日本一区中文字幕| 91在线精品一区二区三区| 91精品国产色综合久久ai换脸| 日韩理论片网站| 久久久久久综合| 日韩av一区二区三区| 亚洲欧洲成人精品av97| 日韩国产在线观看一区| 国产精品卡一卡二卡三| 国产原创一区二区三区| 日韩欧美不卡一区| 欧美主播一区二区三区美女| 自拍偷拍亚洲欧美日韩| 久久久精品国产免费观看同学| 8v天堂国产在线一区二区| 欧美日韩高清影院| 日本系列欧美系列| 午夜精品视频在线观看| 日韩一区二区电影在线| 国产资源在线一区| 国产精品私人自拍| 色欧美片视频在线观看 | 日韩一区二区三区视频在线| 色欧美乱欧美15图片| 在线中文字幕一区二区| 色婷婷av一区| 欧美日本一道本| 欧美一区二区三区在线电影| 欧美电影一区二区三区| 欧美精品第一页| 日韩一区二区三区电影| 久久精品视频在线免费观看| 精品国产一区a| 欧洲生活片亚洲生活在线观看| 欧美日免费三级在线| 国产一区二区三区最好精华液| 国产精品888| 久久成人久久爱| 首页综合国产亚洲丝袜| 国产精品一二三四区| 欧美午夜精品电影| 欧美亚洲愉拍一区二区| 91精品国产综合久久精品性色| 久久久久99精品一区| 视频一区二区三区在线| 国产寡妇亲子伦一区二区| 欧美日韩免费视频| 久久久久久久免费视频了| 亚洲综合免费观看高清完整版在线 | 国产电影一区二区三区| 色av综合在线| 1024国产精品| 成人黄色软件下载| 韩国精品一区二区| 欧美电影影音先锋| 日韩专区一卡二卡| 欧美在线free| 亚洲黄一区二区三区| 亚洲一区二区三区不卡国产欧美| 国产在线看一区| 久久综合久久99| 国产精品高潮久久久久无| 国产精品18久久久久久久久久久久 | 国产精品色哟哟网站| 国产成人精品亚洲777人妖| 久久精品一区二区三区四区| 国产综合一区二区| 国产欧美日韩三区| 亚洲一区二区三区国产| 色婷婷综合久久久久中文| 亚洲天堂精品在线观看| 色综合久久久久综合| 亚洲精品一二三区| 7878成人国产在线观看| 国产乱码精品一区二区三| 国产精品视频线看| 欧美肥妇毛茸茸| 福利一区在线观看| 精品国产一区二区三区不卡 | 亚洲精品免费看| 欧美精品在线观看播放| 国产精品伊人色| 午夜精品一区在线观看| 久久久久久麻豆| 欧美人与禽zozo性伦| 成人av网站在线| 韩国av一区二区三区在线观看| 亚洲蜜臀av乱码久久精品| 日韩中文字幕不卡| 欧美日韩1区2区| 国产xxx精品视频大全| 日日欢夜夜爽一区| 久久久午夜精品| 欧美精品在线一区二区三区| 99re成人精品视频| 成人的网站免费观看| 久久不见久久见免费视频1| 一区二区在线观看视频| 欧美国产激情一区二区三区蜜月 | 91精品中文字幕一区二区三区| 91免费小视频| 91丨porny丨中文| 99精品久久久久久| 成人丝袜高跟foot| 亚洲女厕所小便bbb| 一区二区三区在线观看欧美| 91精品国产日韩91久久久久久| 91精品国产91热久久久做人人 | 91成人看片片| 欧美群妇大交群中文字幕| 欧美视频自拍偷拍| 欧美一区二区女人| 国产女同互慰高潮91漫画| 欧美国产一区二区在线观看| 国产精品久久久久影视| 亚洲欧美激情小说另类| 三级成人在线视频| 国产一区二区导航在线播放| 成人综合在线视频| 日本道色综合久久| 日韩一区二区在线观看视频| 国产亚洲精品免费| 亚洲国产欧美另类丝袜| 国内精品久久久久影院薰衣草| 国产不卡视频在线观看| 精品污污网站免费看| 国产校园另类小说区| 婷婷中文字幕综合| www.欧美精品一二区| 国产成人综合亚洲网站| 欧美日韩一区小说| 欧美激情一区二区三区蜜桃视频| 亚洲国产精品麻豆| 91丨九色丨国产丨porny| 国产拍揄自揄精品视频麻豆| 免费看黄色91| 国产精品18久久久久久vr| 欧美一区三区四区| 亚洲成av人片一区二区三区| 亚洲高清视频的网址| 91福利小视频| 亚洲视频 欧洲视频| 99久久99久久久精品齐齐| 欧美成人aa大片| 中文字幕中文字幕一区二区| 激情综合一区二区三区| 国产亚洲制服色| 成人晚上爱看视频| 亚洲区小说区图片区qvod| 成人avav在线| 亚洲六月丁香色婷婷综合久久 | 亚洲伊人伊色伊影伊综合网| 欧美主播一区二区三区美女| 亚洲一级二级在线| 日韩欧美国产一二三区| 国产一区二区电影| 国产欧美中文在线| 色欲综合视频天天天| 亚洲人成网站色在线观看| 欧美性色综合网| 久久99热狠狠色一区二区| 欧美国产日本韩| 91九色最新地址| 热久久免费视频| 亚洲乱码国产乱码精品精98午夜| 丰满亚洲少妇av| 欧美视频完全免费看| 亚洲一区二区三区爽爽爽爽爽| 日韩免费一区二区| 99国产精品久| 国产曰批免费观看久久久| 一区二区三区精品久久久| 欧美精品一区二区三区四区 | 最近日韩中文字幕| 久久久影视传媒| 日韩一区二区在线观看视频| 91麻豆国产福利在线观看| 国产福利91精品| 国产综合色产在线精品| 久久精品国产亚洲a| 天堂一区二区在线| 午夜视频在线观看一区| 亚洲视频香蕉人妖| 国产精品久久久久久户外露出 | 日韩免费一区二区| 欧美一区二区三区人|