回调解决方案
所有文档

          音视频点播 VOD

          回调解决方案

          VOD通过HTTP请求将通知消息POST到您所配置的通知接口,用户通知接口收到的HTTP POST请求BODY示例。例如,媒资转码成功时通知接口示例如下:

          {
              "messageId": "319519d9-722c-44ea-a352-3ea88fc2696c",
              "messageBody": "{\"mediaId\":\"mda-hdnrx2nnwx45w0wf\",\"status\":\"PUBLISHED\",\"attributes\":{\"title\":\"vod_test.mp4\",\"description\":\"\",\"sourceExtension\":\"mp4\"},\"meta\":{\"sourceSizeInBytes\":6408195,\"durationInSeconds\":25,\"sizeInBytes\":8286486},\"publishTime\":\"2017-04-13T07:45:36Z\",\"createTime\":\"2017-04-13T07:45:12Z\",\"playableUrlList\":[{\"transcodingPresetName\":\"test_1\",\"url\":\"http://gcikci7rzd3nstav8xw.exp.bcevod.com/mda-hdnrx2nnwx45w0wf/test1/mda-hdnrx2nnwx45w0wf.mp4\",\"meta\":{\"sizeInBytes\":626688,\"durationInSeconds\":25,\"bitRateInBps\":199680,\"frameRate\":30.0,\"widthInPixel\":320,\"heightInPixel\":180}},{\"transcodingPresetName\":\"testtest\",\"url\":\"http://gcikci7rzd3nstav8xw.exp.bcevod.com/mda-hdnrx2nnwx45w0wf/testtest/mda-hdnrx2nnwx45w0wf.mp4\",\"meta\":{\"sizeInBytes\":624640,\"durationInSeconds\":25,\"bitRateInBps\":199680,\"frameRate\":30.0,\"widthInPixel\":480,\"heightInPixel\":270}},{\"transcodingPresetName\":\"test_2\",\"url\":\"http://gcikci7rzd3nstav8xw.exp.bcevod.com/mda-hdnrx2nnwx45w0wf/test2/mda-hdnrx2nnwx45w0wf.mp4\",\"meta\":{\"sizeInBytes\":625664,\"durationInSeconds\":25,\"bitRateInBps\":199680,\"frameRate\":30.0,\"widthInPixel\":480,\"heightInPixel\":270}}],\"thumbnailList\":[\"http://gcikci7rzd3nstav8xw.exp.bcevod.com/mda-hdnrx2nnwx45w0wf/mda-hdnrx2nnwx45w0wf.jpg\"],\"transcodingPresetGroupName\":\"test\"}",
              "notification": "notification_test",
              "server": "vod.baidubce.com",
              "subscriptionName": "ntf-hdnrd5t443umxk2d",
              "version": "v0.1",
              "signature": "vod"
          }

          VOD通过增加字段提供回调信息,客户端需要用户自己实现回调解析。伴随VOD持续升级,更多、更丰富的回调信息需要解析,所以用户需要对字段的不断增加做好足够的兼容准备。

          针对以上问题,我们提供了两种主流语言的解析示例代码,请根据实际情况参考使用:

          Java

          如果客户端是Java实现,并且是通过Jackson框架来转换json,那么只需要在新建ObjectMapper对象之后,给ObjectMapper修改配置信息如下:

          objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);  

          这句话的意思表示,在解析对象的时候,不考虑unkown properties的错误,可以防止因字段发生变化而引起的宕机。接着可以使用objectMapper使用readValue实现json和bean之间的转换。

          objectMapper.readValue(jsonStr, Media.class);

          详细的Java回调示例,请参考demo-callback-java

          PHP

          如果客户端是php实现,可以遍历messageBody的json字符串,并转换为array,打印出来关键媒资信息。

          详细的PHP回调示例,请参考demo-callback-php

          上一篇
          VOD版权保护
          下一篇
          API参考