【问题标题】:Navigator.getUserMedia() returns permission denied when run on android phoneNavigator.getUserMedia() 在安卓手机上运行时返回权限被拒绝
【发布时间】:2016-11-21 06:40:23
【问题描述】:

我正在尝试使用 Web API 在 android 6.0.0 上启动相机。以下是在网络浏览器上完美运行的代码。

    var constraints = {
                    video: true,
                    audio: false,
            }

    // get the media sources
    MediaStreamTrack.getSources(function(sourceInfos) {

            navigator.getUserMedia( constraints, function(stream){
                domElement.src = URL.createObjectURL(stream);
            }, function(error) {
                    console.error("Cant getUserMedia()! due to ", error);
            });
    });

我已经将这段代码捆绑到一个带有离子框架的 apk 中。但是在手机上,它会显示一个损坏的视频播放图像。

在进一步调试时,我注意到抛出“权限被拒绝”错误。我不确定抛出此错误的原因。我用谷歌搜索并完成了提供的所有解决方案。但它对我不起作用。

如果我尝试通过 phoneGap 构建它,它会显示 NavigatorUserMediaError {name: "PermissionDeniedError", message: "Only secure origins are allowed (see: some URL).", constraintName: ""}

你能帮帮我吗?

【问题讨论】:

    标签: javascript android ionic-framework getusermedia


    【解决方案1】:

    请尝试这个答案。

    http://api.phonegap.com/1.0/camera

    示例用法

    <?xml version="1.0" encoding="UTF-8" ?>
        <widget xmlns   = "http://www.w3.org/ns/widgets"
            xmlns:gap   = "http://phonegap.com/ns/1.0"
            id          = "com.phonegap.example"
            versionCode = "10" 
            version     = "1.0.0" >
    
        <!-- versionCode is optional and Android only -->
    
        <name>PhoneGap Example</name>
    
        <description>
            An example for phonegap build docs. 
        </description>
    
        <author href="https://build.phonegap.com" email="support@phonegap.com">
            Hardeep Shoker 
        </author>
    
        <!--
          If you do not want any permissions to be added to your app, add the
          following tag to your config.xml; you will still have the INTERNET
          permission on your app, which PhoneGap requires.
        -->
        <preference name="permissions" value="none"/>
    
        <!-- to enable individual permissions use the following examples -->
        <feature name="http://api.phonegap.com/1.0/battery"/>
        <feature name="http://api.phonegap.com/1.0/camera"/>
        <feature name="http://api.phonegap.com/1.0/contacts"/>
        <feature name="http://api.phonegap.com/1.0/file"/>
        <feature name="http://api.phonegap.com/1.0/geolocation"/>
        <feature name="http://api.phonegap.com/1.0/media"/>
        <feature name="http://api.phonegap.com/1.0/network"/>
        <feature name="http://api.phonegap.com/1.0/notification"/>
    </widget>
    

    【讨论】:

    • 如果我能得到一个不使用 phonegap 的解决方案,我将不胜感激。我不是很熟悉。
    【解决方案2】:

    您的 Android 运行时权限可能存在问题。 Here 你可以在 Ionic 的讨论中看到这个答案。这个问题以一种晦涩难懂的方式发生,但都存在于Android 6 Runtime Permissions system 中。你可以通过adding the permissions to your manifestrequesting the runtime permissions来解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多