0

这是我的代码:

var audioEl= <HTMLVideoElement>document.getElementById('mediaplayer');

如果我直接将 src 附加到这个 audioEle.g。audioEl.src =<video_or_mp3_url> 然后它使用范围标头检索大块媒体内容......我的服务器将拥有范围并将媒体数据发送到块但我不能直接将 media_content_url 分配给这个 src 因为我必须通过一些身份验证这就是为什么我使用 fetch API 只是发送请求标头的原因,但是即使我在标头中指定,此 fetch API 也不处理范围标头,服务器将响应 partial_content 206 响应代码。如何使用 fetch API 实现这个用例(以块的形式获取 mp3 或 mp4)?

   **HTML Code**
    <video controls id="mediaplayer">
     

**Javascript Code :**
var audioEl= <HTMLVideoElement>document.getElementById('mediaplayer');
playVideo(){
var requestObj = new Request('<video_or_mp3_url>', {
      method: 'GET',
      headers: {
        <some_auth headers>
        'Content-Type': 'multipart/byteranges',
        **range:'bytes=0-'**
      },
      referrerPolicy: 'no-referrer'
    });
getVideoDetails(requestObj);
}

getVideoDetails(requestObj){
 fetch(requestObj, { cache: "no-store" }).then(function (response) {
      return response;
    }).then(async function (outcome) {
     
      const blob = await outcome.blob();
    
      const url = window.URL.createObjectURL(blob);
      
      audioEl.src = url;     
      audioEl.currentTime = 5;//time offset
      audioEl.play();
    });
}
4

0 回答 0