2016-06-09 58 views
1

前言鉻的Android視頻元素無法從mediaRecorder BLOB數據的URL玩

我使用的WebRTC mediaRecorder API記錄在移動web應用程序的視頻。視頻數據正在錄製,可以下載並在設備上的視頻播放器應用中播放。

問題

的問題是,所記錄的數據blob陣列使用時無法播放鉻甚至在最新發布的移動設備上:

window.URL.createObjectURL(); or window.webkitURL.createObjectURL() 

我發現這個文件指出Android上的chrome中存在一個錯誤。 Chrome Bug Report

我發現從谷歌的一些文件,即使凸顯這裏的錯誤: Google devs mediaRecorder docs

問題

有沒有人找到一個解決辦法,以播放錄製媒體在Android上使用谷歌瀏覽器視頻元素?

解測試,失敗

測試1:使用斑點窗口URL作爲video要素上的src

<video src="[example blob url]> 

測試2:使用斑點窗口URL作爲在視頻源元素

<video> 
    <source type="video/webm" src="[example blob url]"> 

測試3:使用FileReader API將mediaRecorder blob數組轉換爲dataURI。

function getVideoDataUri(callBackFn) 
{ 
    var reader = new FileReader(); 
    var fileMime = 'video/webm'; 
    var blob = new Blob(this.blobs, {type: fileMime}); 
    reader.onload = function(e) 
    { 
     if(typeof callBackFn === 'function') 
     { 
      callBackFn(reader.result); 
     } 
    }; 
    reader.readAsDataURL(blob); 
} 

function callBack(dataUri) 
{ 
    /* do something with data */ 
    console.log(dataUri); 
} 

getVideoDataUri(callBack); 
+0

有沒有人想出任何解決方法呢? –

+0

是的。測試3將解決這個問題。我目前正在使用它。如果您需要,我可以發送生產代碼。 –

+0

發送生產代碼將不勝感激。我嘗試了測試3,同樣的事情,沒有運氣。我的機器在Android 4.4(API 19) –

回答

0

看起來好像測試3是答案。它可以工作,但視頻不會自動播放,直到點擊。我正在播放視頻元素中的錄製媒體。

+0

我需要它自動播放,任何運氣呢? –

+0

不。在移動設備上,由於數據限制,他們已經阻止了自動播放。即使通過欺騙事件它仍然拒絕。 –

0

由於我的代表不能發表評論,但我認爲你現在想現在它很快就會被修復,請參閱chrome bug report

感謝分享你的測試3,拯救了我的一天!