当我们接入阿里云的视频直播功能后,我们想让录制好的视频存储到oss上,并让阿里回调我们服务器写好的接口,获取存储到oss上的路径,存入数据库,以便用户查看回放记录。

如图:配置到该配置,官网上有自己搞就完了。

阿里云视频直播视频存储回调功能的处理方法

当阿里回调到我们服务器写好的接口的时候,有个小的处理细节是阿里返回的 request 中的格式是:

] call --> synLiveVideoUrl ==> {"domain":"livepull.jianlet.com","app":"jianlet","stream":"xxxa8ry","uri":"livexx/record/xxx/xxxx/2020-09-17-14-56-07_2020-09-17-14-56-47.mp4","duration":39.154,"start_time":1600325766,"stop_time":1600325807}

我们需要无法直接用request 对象提供的方法获取指定的值,需要转换成 JSONObject  类型然后获取需要的值,

小小工具类如下:

// 字符串读取
public static String ReadAsChars(HttpServletRequest request) {
    BufferedReader br = null;
    StringBuilder sb = new StringBuilder("");
    try {
        br = request.getReader();
        String str;
        while ((str = br.readLine()) != null) {
            sb.append(str);
        }
        br.close();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (null != br) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return sb.toString();
}
-------------------------------------------
回调方法中直接使用 : 
String sr = ReadAsChars(req);
logger.info("call --> synLiveVideoUrl ==> {}", sr);
JSONObject jsStr = JSONObject.parseObject(sr);

转换成json后,再获取url路径等信息存储到我们自己数据库里面。

 

 

 

相关文章: