广西应急广播项目经验总结(二)

 

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包如下:

 

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