2014-02-25 34 views
1

我對Media Souce Extension/API做了一點調查,但是我還沒有找到一種方法來覆蓋特定的緩衝區。比方說,我已經觀看了前30秒質量較低,並在此之後切換到更高質量的球員,因此30-60秒是總部。所以...當我尋求回到秒0-30我會得到質量較低的視頻(一個已經緩衝),但我想重新追加新請求相同範圍與更高的質量和觀看。我看過現有球員(MSE展示),情況並非如此。是否可以覆蓋媒體源API附加緩衝區(範圍)?

我想MSE決定在哪裏添加緩衝區基於(我現在不記得名字)開始日期時間? 那麼,是否可以重寫Media Source API中的一些附加範圍/緩衝區?

回答

2

是的,這是可能的。在源緩衝區上調用appendBuffer()之前,請將timestampOffset設置爲希望開始覆蓋的秒數。例如:

var mediaSource = new MediaSource(); 
    mediaSource.addEventListener('sourceopen', function() { 
     var sourceBuffer = mediaSource.addSourceBuffer('video/webm; codecs="vorbis,vp8"'); 

     /* ...code to fetch low quality binary... */ 
      sourceBuffer.appendBuffer(lowQualityBinary); 

     /* ...later fetch higher quality binary and overwrite 
     * entire video starting at the beginning... 
     */ 
      sourceBuffer.timestampOffset = 0; 
      sourceBuffer.appendBuffer(highQualityBinary); 
    }); 

需要注意的是,如果用戶正在播放的視頻,你覆寫開始在之前的當前播放時間的時間,在Chrome目前的行爲是繼續顯示原來的附加視頻。如果它稍後被覆蓋,或者他們四處尋找,他們會看到新的視頻。

相關問題