共用方式為


程式

程式可讓您控制即時資料流區段的發佈和儲存體。 多個程式可以並行執行。 如此,您將可在必要時發佈及封存事件的不同部分。

您可以設定 ArchiveWindowLength 屬性,以指定為程式記錄的內容所將保留的時數 (最多 25 小時)。 用戶端可在指定的時數內搜尋封存的內容。 如果程式的執行時間超過指定的 ArchiveWindowLength,較舊的內容將會被移除。 如需詳細資訊,請參閱下列《ArchiveWindowLength》文件。

本主題概述 Program 實體,也會示範如何使用 Media Services REST API 執行各種作業。

重要

在媒體服務中存取實體時,您必須在 HTTP 要求中設定特定的標頭欄位和值。
如需詳細資訊,請參閱媒體服務 REST API 開發和使用媒體服務 REST API 連線到媒體服務

程式實體屬性

「程式」實體包含下列屬性。

屬性 類型 說明
Id

唯讀。 由 Media Services 設定。
Edm.String 在建立時指派的程式識別碼。 格式為:nb:pgid:UUID: < GUID > 。
Name Edm.String 程式的名稱。 長度上限為 256 個字元,可包含任何英文字元和數字 (包括 '-' 和 ' '),只要其開頭與結尾為英數字元即可。
AssetId Edm.String 要用於程式處理的資產識別碼。 只有在程式處於 [已停止] 狀態時,才能更新此屬性。

由程式所使用的資產無法刪除。 您可以先刪除資產,再刪除使用此資產的程式。
Created

唯讀。 由 Media Services 設定。
Edm.DateTime 指出建立時間的 UTC 日期/時間值。
Description Edm.String 使用者提供的描述。 最大長度是 256 個字元。
ArchiveWindowLength

必要。
Edm.Time 您為程式記錄的內容所將保留的時數。 此值最小可以設定為 5 分鐘,最大可以設定為 25 個小時。 此屬性也會指定用戶端可從目前的時間點進行回溯搜尋的時間量上限。 程式在超過指定的時間量後還是可以執行,但是會持續捨棄落後時間範圍長度的內容。 此屬性的這個值也會決定用戶端資訊清單可以成長為多長的時間。

若要刪除封存的內容,並停止並刪除程式,然後刪除與程式相關聯的資產。
LastModified

唯讀。 由 Media Services 設定。
Edm.DateTime 前次修改的日期和時間。
ManifestName Edm.String 資訊清單檔案名稱,不含副檔名。 只有在程式處於 [已停止] 狀態時,才能更新此屬性。
State

唯讀。 由 Media Services 設定。
Edm.String 取得現行狀態。 可能的值包括:

- 已停止。 程式建立後會處於 [已停止] 狀態。 在此狀態中可以更新程式屬性,但不允許串流。 在此狀態下可以啟動、更新或刪除程式。
- 啟動中。 程式正在啟動。 在此狀態期間允許任何更新或串流。
- 執行中。 程式能夠處理和封存即時串流。
- 停止中。 程式正在停止。 在此狀態期間允許任何更新或串流。
ChannelId

唯讀。 由 Media Services 設定。
Edm.String 程式之父系通道的識別碼。
Channel 通道 ChannelId 指定的程式父系通道。

建立程式

建立新的程式。

方法 要求 URI HTTP 版本
POST HTTPs:// < accountname.restv2 > 。 <location.media.azure.net/api/Programs > HTTP/1.1

範例要求

您可以在 Fiddler的 [編輯器] 索引標籤中試用下列範例。

若要取得最新的 x-ms-version: ,請參閱 媒體服務 REST

要求標頭:

POST https://testrest.cloudapp.net/api/Programs HTTP/1.1  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json;odata=minimalmetadata  
Accept-Charset: UTF-8  
x-ms-version: 2.19  
Content-Type: application/json;odata=minimalmetadata  
Host: <host URI>  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
  

要求本文:

{"Id":null,"Name":"testprogram001","Description":"","Created":"0001-01-01T00:00:00","LastModified":"0001-01-01T00:00:00","ChannelId":"nb:chid:UUID:83bb19de-7abf-4907-9578-abe90adfbabe","AssetId":"nb:cid:UUID:bc495364-5357-42a1-9a9d-be54689cfae2","ArchiveWindowLength":"PT1H","State":null,"ManifestName":null}  

如果成功,會在回應本文中傳回 202 已接受狀態代碼以及已建立實體的表示式。

{"odata.metadata":"https://testrest.cloudapp.net/api/$metadata#Programs/@Element","Id":"nb:pgid:UUID:b870dd57-4b04-41b6-849d-b2470e50e7e6","Name":"testprogram001","Description":"","Created":"2014-08-11T18:12:27.8381256Z","LastModified":"2014-08-11T18:12:27.8381256Z","ChannelId":"nb:chid:UUID:83bb19de-7abf-4907-9578-abe90adfbabe","AssetId":"nb:cid:UUID:bc495364-5357-42a1-9a9d-be54689cfae2","ArchiveWindowLength":"PT1H","State":"Stopped","ManifestName":"f91329ec-26f5-4026-87f5-f5437d4da9e6"}  
  

注意

此作業會同步完成,因此沒有可追蹤的作業識別碼。

啟動程式

啟動程式。 只有在程式處於 [已停止] 狀態,且通道處於 [執行中] 狀態時,才能啟動程式。

方法 要求 URI HTTP 版本
開始 HTTPs:// < accountname.restv2 > 。 <location.media.azure.net/api/Programs ('ProgramId > ') /Start HTTP/1.1

範例要求

您可以在 Fiddler的 [編輯器] 索引標籤中試用下列範例。

若要取得最新的 x-ms-version: ,請參閱 媒體服務 REST

要求標頭:

POST https://testrest.cloudapp.net/api/Programs('nb:pgid:UUID:0f9ceb51-50fe-4769-aaed-f8c19d76b9bc')/Start HTTP/1.1  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json;odata=minimalmetadata  
Accept-Charset: UTF-8  
x-ms-version: 2.19  
Content-Type: application/json;odata=minimalmetadata  
Host: <host URI>  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
  

如果成功,會傳回 202 已接受狀態代碼。 202 已接受狀態代碼表示非同步作業,其中作業識別碼標頭值也會提供以用做輪詢及追蹤長時間執行作業的狀態,例如啟動或停止程式。 將作業 ID 標頭值傳至作業實體以擷取狀態。 如需詳細資訊,請參閱 手動輪詢 Long-Running 作業

停止程式

停止程式。 只有在程式處於 [執行中] 狀態時,才能停止程式。 這是一個非同步作業。

方法 要求 URI HTTP 版本
Stop HTTPs:// < accountname.restv2 > 。 <location.media.azure.net/api/Programs ('ProgramId > ') /Stop HTTP/1.1

範例要求

您可以在 Fiddler的 [編輯器] 索引標籤中試用下列範例。

若要取得最新的 x-ms-version: ,請參閱 媒體服務 REST

要求標頭:

POST https://testrest.cloudapp.net/api/Programs('nb:pgid:UUID:0f9ceb51-50fe-4769-aaed-f8c19d76b9bc')/Stop HTTP/1.1  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json;odata=minimalmetadata  
Accept-Charset: UTF-8  
x-ms-version: 2.19  
Content-Type: application/json;odata=minimalmetadata  
Host: <host URI>  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
  

如果成功,會傳回 202 已接受狀態代碼。 202 已接受狀態代碼表示非同步作業,其中作業識別碼標頭值也會提供以用做輪詢及追蹤長時間執行作業的狀態,例如啟動或停止程式。 將作業 ID 標頭值傳至作業實體以擷取狀態。 如需詳細資訊,請參閱 手動輪詢 Long-Running 作業

列出程式

程式可使用 GET HTTP 要求來擷取。

方法 要求 URI HTTP 版本
GET 取得 Media Services 帳戶中的所有程式:

HTTPs:// < accountname.restv2 > 。 <location.media.azure.net/api/Programs >

取得 Media Services 帳戶中的指定程式:

HTTPs:// < accountname.restv2 > 。 <location.media.azure.net/api/Programs ('ProgramId > ')

取得與指定的通道相關聯的所有程式:

HTTPs:// < accountname.restv2 > 。 <location.media.azure.net/api/Channels ('channelid > ') /Programs
HTTP/1.1

範例要求

您可以在 Fiddler的 [編輯器] 索引標籤中試用下列範例。

若要取得最新的 x-ms-version: ,請參閱 媒體服務 REST

要求標頭:

GET https://testrest.cloudapp.net/api/Programs HTTP/1.1  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json;odata=minimalmetadata  
Accept-Charset: UTF-8  
x-ms-version: 2.19  
Content-Type: application/json;odata=minimalmetadata  
Host: <host URI>  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
  

如果成功,此作業會傳回 200 OK 狀態碼,以及媒體服務帳戶中建立的所有程式清單。

更新程式

更新程式。 程式必須處於 [已停止] 狀態。

方法 要求 URI HTTP 版本
PATCH/PUT/MERGE

如需這些作業的詳細資訊,請參閱 PATCH/PUT/MERGE
HTTPs:// < accountname.restv2 > 。 <location.media.azure.net/api/Programs ('ProgramId > ') HTTP/1.1

範例要求

您可以在 Fiddler的 [編輯器] 索引標籤中試用下列範例。

若要取得最新的 x-ms-version: ,請參閱 媒體服務 REST

要求標頭:

PATCH https://testrest.cloudapp.net/api/Programs('nb:pgid:UUID:0f9ceb51-50fe-4769-aaed-f8c19d76b9bc') HTTP/1.1  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json;odata=minimalmetadata  
Accept-Charset: UTF-8  
x-ms-version: 2.19  
Content-Type: application/json;odata=minimalmetadata  
Host: <host URI>  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
  

要求本文:

{"ArchiveWindowLength":"PT3H"}  

如果更新同步完成,會傳回 204 無內容狀態碼,否則會傳回 202 已接受狀態碼。 202 已接受狀態代碼表示非同步作業,其中作業識別碼標頭值也會提供以用做輪詢及追蹤長時間執行作業的狀態,例如啟動或停止程式。 將作業 ID 標頭值傳至作業實體以擷取狀態。 如需詳細資訊,請參閱 手動輪詢 Long-Running 作業

刪除程式

刪除程式。 只有在程式處於 [已停止] 狀態時,才能刪除程式。

方法 要求 URI HTTP 版本
刪除 HTTPs:// < accountname.restv2 > 。 <location.media.azure.net/api/Programs ('ProgramId > ') HTTP/1.1

範例要求

您可以在 Fiddler的 [編輯器] 索引標籤中試用下列範例。

若要取得最新的 x-ms-version: ,請參閱 媒體服務 REST

要求標頭:

DELETE https://testrest.cloudapp.net/api/Programs('nb:pgid:UUID:0f9ceb51-50fe-4769-aaed-f8c19d76b9bc') HTTP/1.1  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json;odata=minimalmetadata  
Accept-Charset: UTF-8  
x-ms-version: 2.19  
Content-Type: application/json;odata=minimalmetadata  
Host: <host URI>  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
  

如果成功,則會傳回 204 沒有內容狀態代碼。

注意

此作業會同步完成,因此沒有可追蹤的作業識別碼。

另請參閱

通道