【问题标题】:Can't play a blob-url video using Chrome for Android无法使用 Android 版 Chrome 播放 blob-url 视频
【发布时间】:2015-04-19 00:45:13
【问题描述】:

我在尝试在 Android 版 Chrome 中录制和播放视频时遇到了一个不寻常的问题。 (相同的代码在桌面版 Chrome 上运行良好)。

首先,一些信息:

  • Android 4.4.2
  • Chrome for Android 40.0.2214.89
  • 适用于桌面版 Chrome 40.0.2214.94 m
  • 将 blob 存储到本地文件后,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 for Android 上运行? 希望可以有人帮帮我。 谢谢大家!

【问题讨论】:

  • 你最终解决了吗?
  • @Shay:不幸的是,我还没有找到任何解决方案。我想,出于某种原因,Chrome 无法访问他在文件系统上的临时文件。
  • 太可惜了,所以没有在Android上运行本地视频的解决方案?这毁了一切。 :)

标签: javascript android google-chrome video


【解决方案1】:

我在 Chrome 41 上也遇到过这个问题,我认为这是一个错误。可能是这个问题:

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

【讨论】:

  • 是的,这绝对是 Android 中的一个错误。适用于样式表、图像,但媒体模块显然以不同的方式解析缓存路径。作品可在 Chrome 桌面、Safari 和 iOS 上找到。
猜你喜欢
  • 2015-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-19
相关资源
最近更新 更多