2015-02-04 2 views
2

У меня возникла необычная проблема при попытке записи и воспроизведения видео в Chrome для Android. (Тот же код отлично работает на Chrome for Desktop).Невозможно воспроизвести blob-url видео с помощью Chrome для Android.

Прежде всего, некоторые сведения:

  • Android 4.4.2
  • Chrome для Android 40.0.2214.89
  • Он работает на Chrome для рабочего стола 40.0.2214.94 м
  • После сохранения блоб на локальный файл, он правильно воспроизводится приложением mediaplayer-app.
  • Обязательный RecordRTC.js

Моя цель состоит в том, что для записи видео с камеры планшета и чем воспроизведения записанного видео. Вот пример кода:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Camera Test</title> 
    <script type="text/javascript" src="//cdn.WebRTC-Experiment.com/RecordRTC.js"></script> 
    </head> 
    <body> 

<script> 


var cameraStream; 
var cameraEl; 
var cameraRecorder; 
var cameraBlobURL; 

window.URL = window.URL || window.webkitURL; 
navigator.getUserMedia = ( navigator.getUserMedia || 
          navigator.webkitGetUserMedia || 
          navigator.mozGetUserMedia || 
          navigator.msGetUserMedia); 



function askForCamera(){ 
    navigator.getUserMedia(
     { 
      video : true 
     }, 
     function(stream) { 
      cameraStream = stream; 
      cameraEl = document.getElementById("vidCamera"); 
      cameraEl.src = window.URL.createObjectURL(stream); 
     }, 
     function(){ 
      alert('fail camera'); 
     } 
    ); 
} 


function playCamera(){ 
    cameraEl.play(); 
} 


function startRec(){ 
    cameraRecorder = RecordRTC(
        cameraStream, 
        { 
         type: 'video', 
         disableLogs : true 
        } 
    );    
    cameraRecorder.startRecording();    
} 

function stopRec(){ 
    cameraRecorder.stopRecording(function(blobURL){ 
     cameraBlobURL = blobURL; 
     console.log(cameraBlobURL); 
     alert(cameraRecorder.getBlob().type + '  ' +cameraRecorder.getBlob().size); 

    }); 
} 

function setBlob(){ 
    cameraEl.src = cameraBlobURL; 
} 


</script> 


<p>Buttons:</p> 
<button type="button" onclick="askForCamera()">Ask for camera</button> 
<button type="button" onclick="playCamera()">Play camera</button> 
<button type="button" onclick="startRec()">Start Rec</button> 
<button type="button" onclick="stopRec()">Stop Rec</button> 

<button type="button" onclick="setBlob()">Set blob to camera</button> 
<button type="button" onclick="playCamera()">Play camera</button> 

<br/> 
<p>Camera:</p> 
<video id="vidCamera" width="200" height="200"> 
</video> 



    </body> 
</html> 

Как я должен действовать, чтобы убедиться, что он работает на Chrome для Android? Надеюсь, кто-то может мне помочь. Спасибо всем!

+0

Никто не может помочь? – ExDev

+0

Вам удалось в конце концов разобраться? – Shay

+0

@Shay: К сожалению, я пока не нашел решения. По какой-то причине я полагаю, что Chrome не может получить доступ к своим временным файлам в файловой системе. – ExDev

ответ

4

Я также столкнулся с этой проблемой на Chrome 41 и считаю ее ошибкой. Возможно, этот вопрос:

https://code.google.com/p/chromium/issues/detail?id=253465

+1

да, определенно ошибка в Android. отлично работает для таблиц стилей, изображений, но медиа-модуль, по-видимому, решает пути кэширования по-разному. Работы находят на рабочем столе Chrome, Safari и iOS. –

Смежные вопросы