廣西應急廣播項目經驗總結(二)

 

16.layui時間選擇組件的使用

這是官方示例:

隨便引入一個選擇框,我這裏引入的是時間範圍選擇。

<div class="jeinpbox" style="width: 20%; float: right">
            <input style=" float: right" type="text" id="fStartAndEndDate" name="fStartAndEndDate" class="jeinput data-YYYY-MM-DD_update1 form-control " placeholder="YYYY-MM-DD至YYYY-MM-DD">
</div>

但是注意引入相應的js代碼,放在<script>標籤下就可以

然後就好了:

 

 

17.代碼中枚舉類型的定義

package cn.wtu.broadcast.openapi.enums;

public enum DeviceChannelThirdCodeEnum {

    Microphone(1, "話筒"),
    LineOne(2, "線路一"),
    LineTwo(3, "線路二"),
    UDisk(4, "U盤"),
    FrequencyModulationOne(5, "調頻一"),
    FrequencyModulationTwo(6, "調頻二"),
    TelephoneMessage(7, "電話短信"),
    TextToLanguageConversion(8, "文本");

    private int code;
    private String desc;

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    private DeviceChannelThirdCodeEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    @Override
    public String toString() {
        return String.valueOf(this.code);
    }

    public static DeviceChannelThirdCodeEnum getSexEnumByCode(String code) {
        for (DeviceChannelThirdCodeEnum deviceChannelThirdCodeEnum : DeviceChannelThirdCodeEnum.values()) {
            if (code != null && code.equals(String.valueOf(deviceChannelThirdCodeEnum.getCode()))) {
                return deviceChannelThirdCodeEnum;
            }
        }

        return null;
    }
}

18.服務器下部署報如下錯誤

這個錯誤導致項目加載內存不足,原因在於tomcat日誌文件需要及時清理,使用

echo "">catalina.out

該命令會清除logs下的這個catalina,.out文件中的數據。然後重啓即可。

 

19.日期轉換,如何對日期進行加減操作,使用Calendar進行相應操作,比較方便

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(fStartTime);
Calendar instance = Calendar.getInstance();
instance.setTime(date);

dates[0] = new SimpleDateFormat("yyyy-MM-dd").format(date);
for(int i=1; i<=6; i++){
		instance.add(Calendar.DAY_OF_MONTH,1);
		dates[i] = new SimpleDateFormat("yyyy-MM-dd").format(instance.getTime());
}

 

20.年後還遇到的一些問題:

===>純mp3格式、帶一張圖片的mp3格式的兩種類型的音頻流的解析。

===>待播發隊列排隊問題。(如何實現廣播排序<先按照時間排序,要求應急廣播永遠在最前面>、插播(只有應急廣播是插播)) ,如何在待播發隊列裏面實現手動排隊(就是加上一個上下箭頭和刪除該廣播和一鍵置頂按鈕)。

 

 

21.如何將jeDate中選擇的數據,請求後臺後,如何返回到bootstrap-table的表格中。

 其實在bootstrap的refresh方法可以發送請求,只要你在responseHandler中處理好後,就一直使用refresh發送請求即可。非常方便,可參考官方文檔的方法介紹:

按照上述的敘述,我是這樣寫的:

我從後臺返回的是map數據,在bootstrap-table中的responseHandler中是這樣處理並返回頁面的:

 

22.string類型的字符串如何對應到數據庫中的date類型

其實是沒有想象中那麼複雜,我當時是卡在轉換之後,和數據庫中的數據完全不一致,所以就沒有再往下測試了

其實這樣對於數據庫類型對應沒有啥關係,依然可以這樣使用:

 

 

23.由於mp3文件中帶有圖片,導致適配器能夠接收數據,當時無法播放音頻。

去掉mp3音頻文件的圖片,當時這個問題停滯了很久,一直沒能解決,最後16號和湖南九天信達的易工討論,解決了這個問題,使用ffmpeg,可以直接使用如下命令,一下子就解決了mp3文件中待圖片的問題:

ffmpeg -i test.mp3 -af silenceremove=1:0:-50dB:1:0:-50dB newTest.mp3

具體命令參考如何文檔:https://ffmpeg.org/ffmpeg-filters.html#silenceremove

 

24.mp3文件使用適配器播放斷續,這是由於設備對於碼率的最低要求是32kbps,但是項目組自己使用jave(這不是java語言,是sun公司開發的一個工具)的jar包,然後去封裝了一個轉碼率的工具類

public static void changeBitRate(File file,File file1){
       MultimediaObject multimediaObject = new MultimediaObject(file);
       Encoder encoder = new Encoder();
       EncodingAttributes encodingAttributes=new EncodingAttributes();
       encodingAttributes.setFormat("mp3");
       AudioAttributes audioAttributes=new AudioAttributes();
       audioAttributes.setBitRate(128000);
       encodingAttributes.setAudioAttributes(audioAttributes);
       try {
           encoder.encode(multimediaObject,file1,encodingAttributes);
       } catch (EncoderException e) {
           e.printStackTrace();
       }
       file.delete();
}

jar包如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章