Bonjour,

J'ai du HTML, CSS, JS qui fonctionne sur un PC avec fireFox pour afficher le flux vidéo d'une webCam et prendre une photo pour l'envoyer en PHP.

Si j'essaie d'utiliser la même chose dans un webView Android, j'ai l'erreur
NotReadableError: Coulnd not start video source
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function photo()
{	var video=document.getElementById("video"),
	canvas=document.getElementById("canvas"),
	photo=document.getElementById("photo"),
	take=document.getElementById("msgButtonPhotoTake"),
	send=document.getElementById("msgButtonPhotoTake");
	navigator.mediaDevices.getUserMedia({video:true})
	.then(function(stream)
	{	video.srcObject=stream;
		video.play();
		take.addEventListener("click",function()
		{	var draw=canvas;
			draw.width=video.videoWidth;
			draw.height=video.videoHeight;
			canvas.getContext('2d').drawImage(video,0,0,video.videoWidth,video.videoHeight);
			var data=canvas.toDataURL('image/png');
			photo.setAttribute('src',data);
			draw.toBlob(function(blob)
			{	var data=new FormData();
				data.append('upimage', blob);
				console.log("Photo->"+photo.src);
				mailSend("mailVisual",[photo.src]);
			});
		});
	})
	.catch(function(err)
	{		alert(err);
	});
};

Java (j'ai enlevé ce qui ne concerne pas le problème rencontré) :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package ...;
 
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.os.BatteryManager;
import android.os.Build;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.telephony.SmsManager;
import android.webkit.ConsoleMessage;
import android.webkit.JavascriptInterface;
import android.webkit.PermissionRequest;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Toast;
 
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
 
import java.util.ArrayList;
import java.util.Locale;
 
public class MainActivity extends AppCompatActivity
{   private WebView webview;
    private final int REQ_CODE_SPEECH_INPUT=1;
    public static ArrayList<String> sttResults;
    TTSManager ttsManager = null;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {   super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_main);
        WebView webView=(WebView) findViewById(R.id.webview);
        WebSettings webSettings = webView.getSettings();
        webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
                android.util.Log.d("WebView", Integer.toString(consoleMessage.lineNumber())+"->"+consoleMessage.message());
                return true;
            }
            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
            public void onPermissionRequest(PermissionRequest request) {
                request.grant(request.getResources());
            }
        });
        webSettings.setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setAppCacheEnabled(false);
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        //webview.addJavascriptInterface(new JavaScriptInterface(), "os_android");
        webView.loadUrl("URL du site");
    }
 
}
Manifest :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package=...>
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="landscape"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-feature android:name="android.hardware.camera" android:required="true" />
    <uses-feature android:name="android.hardware.camera.front" android:required="true" />
    <uses-feature android:name="android.permission.write_external_storage" />
    <uses-feature android:name="android.permission.read_external_storage" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.webkit.PermissionRequest" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 
</manifest>

Merci par avance et bon confinement :-(