无法在Chrome浏览器中的音频元素中搜索存储在Azure Blob中的音频

时间:2017-11-24 05:58:34

标签: google-chrome audio azure-storage

能够使用音频元素在chrome中播放音频,但在尝试搜索(更改当前播放时间)时,它会从音频文件的开头重新开始播放。

尝试从FileStack和本地文件播放其他文件,它播放完美。

1 个答案:

答案 0 :(得分:0)

检查HTTP请求是否返回媒体的部分内容,如果不是,则调查。

文件堆栈返回以下音频文件标题

accept-ranges:bytes
accept-ranges:bytes
access-control-allow-headers:Content-Type, X-No-Stream
access-control-allow-methods:DELETE, GET, HEAD, POST, PUT
access-control-allow-origin:*
access-control-max-age:21600
age:5343
cache-control:public, max-age=2678400
content-disposition:inline; filename="8441b29c7dab61f5f38615330b744b59987846714763447555wav.mp3"
content-length:316538
content-range:bytes 0-316537/316538
content-type:audio/mp3
date:Mon, 25 Sep 2017 10:39:44 GMT
etag:"1c3f5b13012a2edc4a74698dc6caf278"
fastly-debug-digest:c89cb1c9d9747149691a99fe814c53edb54a470c54ea853578098f53d0974baf
last-modified:Mon, 25 Sep 2017 09:10:40 GMT
server:nginx
**status:206**

Azure blob返回

Content-Length:316538
Response of audio request
Content-MD5:HD9bEwEqLtxKdGmNxsryeA==
Content-Type:audio/mp3
Date:Mon, 25 Sep 2017 10:39:43 GMT
ETag:0x8D503FFF76724A4
Last-Modified:Mon, 25 Sep 2017 10:27:04 GMT
Server:Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-blob-type:BlockBlob
x-ms-lease-status:unlocked
x-ms-request-id:dcc6e80e-001e-0023-1dea-3532f0000000
x-ms-version:2009-09-19 <- This is Azure Storage Service version
status:200 <- Not a partial content

需要使Azure blob存储返回部分内容(206)。

参考

  1. Set Blob Service Properties - MSDN
  2. Streaming MP4 video files in Azure Storage containers (Blob Storage) - thoughtstuff
  3. 使用的Blob存储是旧版本,不支持部分内容。使用的Verion在HTTP请求的响应头中提到了媒体文件&#34; x-ms-version:2009-09-19&#34;。需要使用最新的Azure存储版本。

    设置默认Azure存储版本

             // Retrieve storage account from connection-string
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);
    
            // Create the blob client 
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
    
            //Set Azure Storage Service version
            blobClient.GetServiceProperties();
            var properties = blobClient.GetServiceProperties();
            Trace.TraceInformation("Storage service version " + properties.DefaultServiceVersion);
            properties.DefaultServiceVersion = "2017-04-17";
            blobClient.SetServiceProperties(properties);
            Trace.TraceInformation("Storage service version " + properties.DefaultServiceVersion);
    

    一旦默认的Azure存储版本将设置为截止日期的最新版本,并且未明确指定要使用的任何版本的任何HTTP请求将使用默认值,在此情况下支持流媒体的部分内容流量,则执行上述代码。 / p>