日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置剪輯完成時(shí)的回調(diào)

更新時(shí)間:

在使用智能媒體服務(wù)云剪輯服務(wù)時(shí),您可通過設(shè)置回調(diào)事件及時(shí)獲取任務(wù)處理進(jìn)展和狀態(tài),以便進(jìn)行其他業(yè)務(wù)操作。通過閱讀本文,您可以了解配置剪輯完成時(shí)回調(diào)的方法。

回調(diào)方式說明

智能媒體服務(wù)支持通過HTTP請求MNS隊(duì)列兩種回調(diào)方式獲取事件通知,詳情請參見回調(diào)方式說明。

實(shí)現(xiàn)說明

配置剪輯完成時(shí)的回調(diào)可以通過自定義單任務(wù)回調(diào)地址配置全局回調(diào)地址來實(shí)現(xiàn):

  • 自定義單任務(wù)回調(diào)地址:是在提交剪輯合成任務(wù)時(shí)指定的回調(diào)地址,您需要調(diào)用SubmitMediaProducingJob接口,傳入HTTP(S)回調(diào)地址或MNS回調(diào)地址。

    • 如果選擇HTTP(S)回調(diào),您需要部署一個(gè)HTTP服務(wù)來接收回調(diào)消息,并在剪輯合成請求中配置回調(diào)URL;當(dāng)剪輯合成任務(wù)完成時(shí),IMS服務(wù)端會對該URL發(fā)起HTTP POST請求,任務(wù)完成情況內(nèi)容將通過HTTP Body送達(dá)給用戶。

    • 如果選擇MNS回調(diào),則需要用戶在任務(wù)完成的地域(Region)配置以ice-callback開頭的消息隊(duì)列,IMS服務(wù)器會將消息內(nèi)容發(fā)送至您的MNS消息隊(duì)列中。

  • 配置全局回調(diào)地址:適用于所有媒體處理任務(wù)的回調(diào)通知。您可以在智能媒體服務(wù)的全局設(shè)置中指定一個(gè)MNS消息隊(duì)列地址作為全局回調(diào)地址。當(dāng)任何任務(wù)完成時(shí),智能媒體服務(wù)會將回調(diào)通知發(fā)送到配置的全局回調(diào)地址。

    說明

    僅支持MNS消息的配置。

回調(diào)事件的消息結(jié)構(gòu)

關(guān)于剪輯合成任務(wù)完成時(shí)的消息結(jié)構(gòu),請參見事件列表。

前提條件

如果回調(diào)方式為MNS隊(duì)列,您需要先授權(quán)MNS訪問權(quán)限。具體操作,請參見開通輕量消息隊(duì)列(原 MNS)并授權(quán)。

自定義單任務(wù)回調(diào)地址

您可以使用自定義單任務(wù)回調(diào)地址來處理剪輯任務(wù)完成時(shí)的回調(diào)通知。在調(diào)用SubmitMediaProducingJob提交剪輯合成任務(wù)時(shí),可以在請求中傳入一個(gè)包含HTTP(S)或MNS回調(diào)地址的UserData參數(shù)。示例如下所示:

  • HTTP(S)回調(diào)地址

    {"NotifyAddress":"http(s)://**.**.***"}
  • MNS回調(diào)地址(必須以ice-callback開頭的消息隊(duì)列才可以進(jìn)行回調(diào))

    {"NotifyAddress":"ice-callback-****"}

配置全局回調(diào)地址

  1. 輕量消息隊(duì)列(原MNS)控制臺創(chuàng)建回調(diào)消息隊(duì)列,隊(duì)列名稱必須以ice-callback開頭。具體操作,請參見創(chuàng)建隊(duì)列。

  2. 調(diào)用SetEventCallback設(shè)置事件回調(diào),傳入CallbackQueueName,即步驟 1中的隊(duì)列名稱。

  3. 監(jiān)聽步驟 1中的消息隊(duì)列,并對消息進(jìn)行處理。示例代碼如下所示:

    說明

    以下示例代碼中引入的服務(wù)端SDK版本號僅供參考,獲取最新的版本請參見服務(wù)端SDK。

    <dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.9</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun.mns</groupId>
        <artifactId>aliyun-sdk-mns</artifactId>
        <version>1.1.9</version>
    </dependency>
    </dependencies>
    import java.util.List;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    
    import com.aliyun.mns.client.CloudAccount;
    import com.aliyun.mns.client.CloudQueue;
    import com.aliyun.mns.client.MNSClient;
    import com.aliyun.mns.common.ClientException;
    import com.aliyun.mns.common.ServiceException;
    import com.aliyun.mns.common.utils.ServiceSettings;
    import com.aliyun.mns.model.Message;
    
    public class IceProduceMessageConsumerDemo {
    
        public static void main(String[] args) {
    
            // 讀取 ~/.aliyun-mns.properties  文件中的mns 配置:
            // mns.accesskeyid, mns.accesskeysecret, mns.queue.endpoint
            // ak/sk 所屬子用戶擁有 MNS 的完全讀寫權(quán)限
            CloudAccount account = new CloudAccount(
                ServiceSettings.getMNSAccessKeyId(),
                ServiceSettings.getMNSAccessKeySecret(),
                ServiceSettings.getMNSAccountEndpoint());
            MNSClient client = account.getMNSClient(); //this client need only initialize once
    
            // Demo for receive message code
            try{
                CloudQueue queue = client.getQueueRef("ice-callback-test");// replace with your queue name
                List<Message> messages = queue.batchPopMessage(10, 30);
                for(Message popMsg : messages)
                {
                    if (popMsg != null){
                        System.out.println("message handle: " + popMsg.getReceiptHandle());
                        System.out.println("message body: " + popMsg.getMessageBodyAsString());
                        System.out.println("message id: " + popMsg.getMessageId());
                        System.out.println("message dequeue count:" + popMsg.getDequeueCount());
    
                        JSONObject jsonObject = JSON.parseObject(popMsg.getMessageBodyAsString());
    
                        // 只處理 ProduceMediaComplete 類型消息:
                        if("ProduceMediaComplete".equals(jsonObject.getString("EventType"))){
                            JSONObject messageBody = jsonObject.getJSONObject("MessageBody");
    
                            System.out.println("ProjectId:" + messageBody.getString("ProjectId"));
                            System.out.println("JobId:" + messageBody.getString("JobId"));
                            System.out.println("Status:" + messageBody.getString("Status"));
                            System.out.println("MediaId:" + messageBody.getString("MediaId"));
                            System.out.println("MediaURL:" + messageBody.getString("MediaURL"));
    
                            //<<to add your special logic.>>
    
                            //remember to  delete message when consume message successfully.
                            //queue.deleteMessage(popMsg.getReceiptHandle());
                            System.out.println("delete message successfully.\n");
                        }
    
    
                    }
                }
            } catch (ClientException ce)
            {
                System.out.println("Something wrong with the network connection between client and MNS service."
                    + "Please check your network and DNS availability.");
                ce.printStackTrace();
            } catch (ServiceException se)
            {
                if (se.getErrorCode().equals("QueueNotExist"))
                {
                    System.out.println("Queue is not exist.Please create queue before use");
                } else if (se.getErrorCode().equals("TimeExpired"))
                {
                    System.out.println("The request is time expired. Please check your local machine timeclock");
                }
                /*
                you can get more MNS service error code in following link.
                http://bestwisewords.com/document_detail/mns/api_reference/error_code/error_code.html?spm=5176.docmns/api_reference/error_code/error_response
                */
                se.printStackTrace();
            } catch (Exception e)
            {
                System.out.println("Unknown exception happened!");
                e.printStackTrace();
            }
    
            client.close();
        }
    }