camera.listFiles

列出相機中所有圖片/所有影片/所有圖片和影片。可能需要數次要求才能列出所有檔案。這個指令已在 API 級別 2 中新增。

如果相機不支援所要求的參數,則相機必須傳回硬體可用的功能上限。舉例來說,以下要求情況可能很罕見:{entryCount: 500, maxSize: 2000}。回應應以相機支援的最大功能為基礎,而非擲回錯誤,例如:{entryCount: 100, maxSize: 200}。請針對所有其他情況擲回錯誤;例如,當要求為 {entryCount: 500, maxSize: -500} 時,應會擲回 invalidParameterValue 錯誤,因為 maxSize 是負值。

參數

  • fileType:要列出的檔案類型,應為以下其中之一:「image」、「video」、「all」。
  • startPosition (選用): (選用) 清單中傳回的第一個檔案的位置。如果省略,起始位置為 0,代表第一個檔案。如果大於最後一個檔案的位置,請傳回含有空白項目的一般回應,而不是錯誤回應。
  • entryCount:要傳回的項目數量,如果大於剩餘的檔案數量,請傳回一般回應以及實際檔案剩餘數量,而非錯誤回應。
  • maxThumbSize:縮圖圖片的大小上限;max(thumbnail_width, thumb_height)。當用戶端想要從結果中省略縮圖圖片時,請將此設為 null

成果

  • 項目:圖片屬性清單。每個項目都應包含下列選填欄位 (經緯度除外),這些欄位為選填:
    • name:檔案名稱。
    • fileUrl:檔案的絕對網址,可直接從相機下載。
    • size:檔案的大小 (以位元組為單位)。
    • 「dateTimeZone」..檔案的日期、時間和時區,格式為:YYYY:MM:DD HH:MM:SS+(-)HH:MM。時間格式請使用 24 小時制。日期和時間會以一個空白字元分隔。時區與世界標準時間不同。請注意,這裡代表影片拍攝的結尾。
    • lat: (選用) 檔案擷取時的位置緯度。
    • lng: (選用) 檔案拍攝時的位置經度。
    • width:圖片或每個影片畫面的寬度。
    • height:圖片或每個影片畫面的高度。
    • thumbnail:檔案縮圖的 Base64 編碼字串 (當 maxThumbSize != null 時)。
    • isProcessed:是一個布林值,指出檔案是否已處理 (例如拼接) 或只是預覽。除非 delayProcessing 設為 true,否則這個欄位應預設為 true。如果已有經過處理的圖片,即使該預覽圖片存在,也不應列出該圖片,否則請列出預覽圖片。
    • previewUrl:如果 delayProcessing 不支援或 isProcessed 等於 false,或預覽圖片從未產生為中繼結果,則預設為空白字串,否則就會是與最終圖片相對應的預覽圖片網址。此程式碼可用來建構預覽圖片與最終圖片之間的對應關係。
  • totalEntries (總計項目):儲存空間中的項目總數 (共 fileType 個)。舉例來說,如果 fileType 是「image」,則為儲存空間中的圖片總數。

錯誤

  • missingParameter:未指定任何必要參數;例如,未指定 entryCount
  • invalidParameterName:輸入參數名稱無法識別。
  • invalidParameterValue:系統可辨識輸入參數名稱,但其值無效;例如 entryCount 是負數或資料類型不正確。

指令 I/O

指令輸入
{
    "parameters": {
        "entryCount": 50,
        "maxThumbSize": 100
    }
}
指令輸出
{
    "results": {
        "entries": [
            {
                "name": "abc",
                "fileUrl": "file URL",
                "size":  file size, # of bytes,
                "dateTimeZone": "2014:12:27 08:00:00+08:00",
                "lat": 50.5324,
                "lng": -120.2332,
                "width": 2000,
                "height": 1000,
                "thumbnail": "ENCODEDSTRING",
                "isProcessed": true,
                "previewUrl": ""
            }
            ...
            {
                ...
            }
        ],
        "totalEntries": 250
    }
}
指令輸出 (錯誤)
{
    "error": {
        "code": "invalidParameterValue",
        "message": "Parameter entryCount is negative."
    }
}